<!DOCTYPE html>

<html>
  <head>
    <title>Protocol Documentation</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>
    <style>
      body {
        width: 60em;
        margin: 1em auto;
        color: #222;
        font-family: "Ubuntu", sans-serif;
        padding-bottom: 4em;
      }

      h1 {
        font-weight: normal;
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
      }

      h2 {
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
        margin: 1.5em 0;
      }

      h3 {
        font-weight: normal;
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
      }

      a {
        text-decoration: none;
        color: #567e25;
      }

      table {
        width: 100%;
        font-size: 80%;
        border-collapse: collapse;
      }

      thead {
        font-weight: 700;
        background-color: #dcdcdc;
      }

      tbody tr:nth-child(even) {
        background-color: #fbfbfb;
      }

      td {
        border: 1px solid #ccc;
        padding: 0.5ex 2ex;
      }

      td p {
        text-indent: 1em;
        margin: 0;
      }

      td p:nth-child(1) {
        text-indent: 0;  
      }

       
      .field-table td:nth-child(1) {  
        width: 10em;
      }
      .field-table td:nth-child(2) {  
        width: 10em;
      }
      .field-table td:nth-child(3) {  
        width: 6em;
      }
      .field-table td:nth-child(4) {  
        width: auto;
      }

       
      .extension-table td:nth-child(1) {  
        width: 10em;
      }
      .extension-table td:nth-child(2) {  
        width: 10em;
      }
      .extension-table td:nth-child(3) {  
        width: 10em;
      }
      .extension-table td:nth-child(4) {  
        width: 5em;
      }
      .extension-table td:nth-child(5) {  
        width: auto;
      }

       
      .enum-table td:nth-child(1) {  
        width: 10em;
      }
      .enum-table td:nth-child(2) {  
        width: 10em;
      }
      .enum-table td:nth-child(3) {  
        width: auto;
      }

       
      .scalar-value-types-table tr {
        height: 3em;
      }

       
      #toc-container ul {
        list-style-type: none;
        padding-left: 1em;
        line-height: 180%;
        margin: 0;
      }
      #toc > li > a {
        font-weight: bold;
      }

       
      .file-heading {
        width: 100%;
        display: table;
        border-bottom: 1px solid #aaa;
        margin: 4em 0 1.5em 0;
      }
      .file-heading h2 {
        border: none;
        display: table-cell;
      }
      .file-heading a {
        text-align: right;
        display: table-cell;
      }

       
      .badge {
        width: 1.6em;
        height: 1.6em;
        display: inline-block;

        line-height: 1.6em;
        text-align: center;
        font-weight: bold;
        font-size: 60%;

        color: #89ba48;
        background-color: #dff0c8;

        margin: 0.5ex 1em 0.5ex -1em;
        border: 1px solid #fbfbfb;
        border-radius: 1ex;
      }
    </style>

    
    <link rel="stylesheet" type="text/css" href="stylesheet.css"/>
  </head>

  <body>

    <h1 id="title">Protocol Documentation</h1>

    <h2>Table of Contents</h2>

    <div id="toc-container">
      <ul id="toc">
        
          
          <li>
            <a href="#store%2fcommon.proto">store/common.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.DatabaseLabel"><span class="badge">M</span>DatabaseLabel</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PageToken"><span class="badge">M</span>PageToken</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Position"><span class="badge">M</span>Position</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Range"><span class="badge">M</span>Range</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.Engine"><span class="badge">E</span>Engine</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ExportFormat"><span class="badge">E</span>ExportFormat</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingLevel"><span class="badge">E</span>MaskingLevel</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.VCSType"><span class="badge">E</span>VCSType</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fadvice.proto">store/advice.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.Advice"><span class="badge">M</span>Advice</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.Advice.Status"><span class="badge">E</span>Advice.Status</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fanomaly.proto">store/anomaly.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.AnomalyConnectionPayload"><span class="badge">M</span>AnomalyConnectionPayload</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AnomalyDatabaseSchemaDriftPayload"><span class="badge">M</span>AnomalyDatabaseSchemaDriftPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fapproval.proto">store/approval.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.ApprovalFlow"><span class="badge">M</span>ApprovalFlow</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ApprovalNode"><span class="badge">M</span>ApprovalNode</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ApprovalStep"><span class="badge">M</span>ApprovalStep</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ApprovalTemplate"><span class="badge">M</span>ApprovalTemplate</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssuePayloadApproval"><span class="badge">M</span>IssuePayloadApproval</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssuePayloadApproval.Approver"><span class="badge">M</span>IssuePayloadApproval.Approver</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.ApprovalNode.GroupValue"><span class="badge">E</span>ApprovalNode.GroupValue</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ApprovalNode.Type"><span class="badge">E</span>ApprovalNode.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ApprovalStep.Type"><span class="badge">E</span>ApprovalStep.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssuePayloadApproval.Approver.Status"><span class="badge">E</span>IssuePayloadApproval.Approver.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssuePayloadApproval.RiskLevel"><span class="badge">E</span>IssuePayloadApproval.RiskLevel</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2faudit_log.proto">store/audit_log.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.AuditLog"><span class="badge">M</span>AuditLog</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.RequestMetadata"><span class="badge">M</span>RequestMetadata</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.AuditLog.Severity"><span class="badge">E</span>AuditLog.Severity</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fdatabase.proto">store/database.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.CheckConstraintMetadata"><span class="badge">M</span>CheckConstraintMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ColumnConfig"><span class="badge">M</span>ColumnConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ColumnConfig.LabelsEntry"><span class="badge">M</span>ColumnConfig.LabelsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ColumnMetadata"><span class="badge">M</span>ColumnMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DatabaseConfig"><span class="badge">M</span>DatabaseConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DatabaseMetadata"><span class="badge">M</span>DatabaseMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DatabaseMetadata.LabelsEntry"><span class="badge">M</span>DatabaseMetadata.LabelsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DatabaseSchemaMetadata"><span class="badge">M</span>DatabaseSchemaMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DependentColumn"><span class="badge">M</span>DependentColumn</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ExtensionMetadata"><span class="badge">M</span>ExtensionMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ExternalTableMetadata"><span class="badge">M</span>ExternalTableMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ForeignKeyMetadata"><span class="badge">M</span>ForeignKeyMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.FunctionConfig"><span class="badge">M</span>FunctionConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.FunctionMetadata"><span class="badge">M</span>FunctionMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.GenerationMetadata"><span class="badge">M</span>GenerationMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IndexMetadata"><span class="badge">M</span>IndexMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.InstanceRoleMetadata"><span class="badge">M</span>InstanceRoleMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.LinkedDatabaseMetadata"><span class="badge">M</span>LinkedDatabaseMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaterializedViewMetadata"><span class="badge">M</span>MaterializedViewMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ProcedureConfig"><span class="badge">M</span>ProcedureConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ProcedureMetadata"><span class="badge">M</span>ProcedureMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchemaConfig"><span class="badge">M</span>SchemaConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchemaMetadata"><span class="badge">M</span>SchemaMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SecretItem"><span class="badge">M</span>SecretItem</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Secrets"><span class="badge">M</span>Secrets</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SequenceMetadata"><span class="badge">M</span>SequenceMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.StreamMetadata"><span class="badge">M</span>StreamMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TableConfig"><span class="badge">M</span>TableConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TableMetadata"><span class="badge">M</span>TableMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TablePartitionMetadata"><span class="badge">M</span>TablePartitionMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskMetadata"><span class="badge">M</span>TaskMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ViewConfig"><span class="badge">M</span>ViewConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ViewMetadata"><span class="badge">M</span>ViewMetadata</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.GenerationMetadata.Type"><span class="badge">E</span>GenerationMetadata.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.StreamMetadata.Mode"><span class="badge">E</span>StreamMetadata.Mode</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.StreamMetadata.Type"><span class="badge">E</span>StreamMetadata.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TablePartitionMetadata.Type"><span class="badge">E</span>TablePartitionMetadata.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskMetadata.State"><span class="badge">E</span>TaskMetadata.State</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fbranch.proto">store/branch.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.BranchConfig"><span class="badge">M</span>BranchConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.BranchSnapshot"><span class="badge">M</span>BranchSnapshot</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fchangelist.proto">store/changelist.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.Changelist"><span class="badge">M</span>Changelist</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Changelist.Change"><span class="badge">M</span>Changelist.Change</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fdata_source.proto">store/data_source.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.DataSourceExternalSecret"><span class="badge">M</span>DataSourceExternalSecret</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceExternalSecret.AppRoleAuthOption"><span class="badge">M</span>DataSourceExternalSecret.AppRoleAuthOption</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceOptions"><span class="badge">M</span>DataSourceOptions</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceOptions.Address"><span class="badge">M</span>DataSourceOptions.Address</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.KerberosConfig"><span class="badge">M</span>KerberosConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SASLConfig"><span class="badge">M</span>SASLConfig</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.DataSourceExternalSecret.AppRoleAuthOption.SecretType"><span class="badge">E</span>DataSourceExternalSecret.AppRoleAuthOption.SecretType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceExternalSecret.AuthType"><span class="badge">E</span>DataSourceExternalSecret.AuthType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceExternalSecret.SecretType"><span class="badge">E</span>DataSourceExternalSecret.SecretType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceOptions.AuthenticationType"><span class="badge">E</span>DataSourceOptions.AuthenticationType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceOptions.RedisType"><span class="badge">E</span>DataSourceOptions.RedisType</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fdb_group.proto">store/db_group.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.DatabaseGroupPayload"><span class="badge">M</span>DatabaseGroupPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fexport_archive.proto">store/export_archive.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.ExportArchivePayload"><span class="badge">M</span>ExportArchivePayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fgroup.proto">store/group.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.GroupMember"><span class="badge">M</span>GroupMember</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.GroupPayload"><span class="badge">M</span>GroupPayload</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.GroupMember.Role"><span class="badge">E</span>GroupMember.Role</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fidp.proto">store/idp.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.FieldMapping"><span class="badge">M</span>FieldMapping</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IdentityProviderConfig"><span class="badge">M</span>IdentityProviderConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IdentityProviderUserInfo"><span class="badge">M</span>IdentityProviderUserInfo</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.LDAPIdentityProviderConfig"><span class="badge">M</span>LDAPIdentityProviderConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.OAuth2IdentityProviderConfig"><span class="badge">M</span>OAuth2IdentityProviderConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.OIDCIdentityProviderConfig"><span class="badge">M</span>OIDCIdentityProviderConfig</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.IdentityProviderType"><span class="badge">E</span>IdentityProviderType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.OAuth2AuthStyle"><span class="badge">E</span>OAuth2AuthStyle</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2finstance.proto">store/instance.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.InstanceMetadata"><span class="badge">M</span>InstanceMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.InstanceOptions"><span class="badge">M</span>InstanceOptions</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.InstanceRole"><span class="badge">M</span>InstanceRole</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2finstance_change_history.proto">store/instance_change_history.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceDatabase"><span class="badge">M</span>ChangedResourceDatabase</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceFunction"><span class="badge">M</span>ChangedResourceFunction</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceProcedure"><span class="badge">M</span>ChangedResourceProcedure</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceSchema"><span class="badge">M</span>ChangedResourceSchema</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceTable"><span class="badge">M</span>ChangedResourceTable</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceView"><span class="badge">M</span>ChangedResourceView</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResources"><span class="badge">M</span>ChangedResources</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.InstanceChangeHistoryPayload"><span class="badge">M</span>InstanceChangeHistoryPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fissue.proto">store/issue.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.GrantRequest"><span class="badge">M</span>GrantRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssuePayload"><span class="badge">M</span>IssuePayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fissue_comment.proto">store/issue_comment.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload"><span class="badge">M</span>IssueCommentPayload</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.Approval"><span class="badge">M</span>IssueCommentPayload.Approval</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.IssueUpdate"><span class="badge">M</span>IssueCommentPayload.IssueUpdate</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.StageEnd"><span class="badge">M</span>IssueCommentPayload.StageEnd</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.TaskPriorBackup"><span class="badge">M</span>IssueCommentPayload.TaskPriorBackup</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.TaskPriorBackup.Table"><span class="badge">M</span>IssueCommentPayload.TaskPriorBackup.Table</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.TaskUpdate"><span class="badge">M</span>IssueCommentPayload.TaskUpdate</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.Approval.Status"><span class="badge">E</span>IssueCommentPayload.Approval.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.IssueUpdate.IssueStatus"><span class="badge">E</span>IssueCommentPayload.IssueUpdate.IssueStatus</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.TaskUpdate.Status"><span class="badge">E</span>IssueCommentPayload.TaskUpdate.Status</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fplan.proto">store/plan.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.PlanConfig"><span class="badge">M</span>PlanConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig"><span class="badge">M</span>PlanConfig.ChangeDatabaseConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry"><span class="badge">M</span>PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig.PreUpdateBackupDetail"><span class="badge">M</span>PlanConfig.ChangeDatabaseConfig.PreUpdateBackupDetail</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.CreateDatabaseConfig"><span class="badge">M</span>PlanConfig.CreateDatabaseConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.CreateDatabaseConfig.LabelsEntry"><span class="badge">M</span>PlanConfig.CreateDatabaseConfig.LabelsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.ExportDataConfig"><span class="badge">M</span>PlanConfig.ExportDataConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.Spec"><span class="badge">M</span>PlanConfig.Spec</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.Step"><span class="badge">M</span>PlanConfig.Step</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.VCSSource"><span class="badge">M</span>PlanConfig.VCSSource</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig.Type"><span class="badge">E</span>PlanConfig.ChangeDatabaseConfig.Type</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fplan_check_run.proto">store/plan_check_run.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunConfig"><span class="badge">M</span>PlanCheckRunConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunConfig.GhostFlagsEntry"><span class="badge">M</span>PlanCheckRunConfig.GhostFlagsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunResult"><span class="badge">M</span>PlanCheckRunResult</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunResult.Result"><span class="badge">M</span>PlanCheckRunResult.Result</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunResult.Result.SqlReviewReport"><span class="badge">M</span>PlanCheckRunResult.Result.SqlReviewReport</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunResult.Result.SqlSummaryReport"><span class="badge">M</span>PlanCheckRunResult.Result.SqlSummaryReport</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PreUpdateBackupDetail"><span class="badge">M</span>PreUpdateBackupDetail</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunConfig.ChangeDatabaseType"><span class="badge">E</span>PlanCheckRunConfig.ChangeDatabaseType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunResult.Result.Status"><span class="badge">E</span>PlanCheckRunResult.Result.Status</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fpolicy.proto">store/policy.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.Binding"><span class="badge">M</span>Binding</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceQueryPolicy"><span class="badge">M</span>DataSourceQueryPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DisableCopyDataPolicy"><span class="badge">M</span>DisableCopyDataPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.EnvironmentTierPolicy"><span class="badge">M</span>EnvironmentTierPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IamPolicy"><span class="badge">M</span>IamPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskData"><span class="badge">M</span>MaskData</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingExceptionPolicy"><span class="badge">M</span>MaskingExceptionPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingExceptionPolicy.MaskingException"><span class="badge">M</span>MaskingExceptionPolicy.MaskingException</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingPolicy"><span class="badge">M</span>MaskingPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingRulePolicy"><span class="badge">M</span>MaskingRulePolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingRulePolicy.MaskingRule"><span class="badge">M</span>MaskingRulePolicy.MaskingRule</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.RestrictIssueCreationForSQLReviewPolicy"><span class="badge">M</span>RestrictIssueCreationForSQLReviewPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.RolloutPolicy"><span class="badge">M</span>RolloutPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SQLReviewRule"><span class="badge">M</span>SQLReviewRule</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SlowQueryPolicy"><span class="badge">M</span>SlowQueryPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TagPolicy"><span class="badge">M</span>TagPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TagPolicy.TagsEntry"><span class="badge">M</span>TagPolicy.TagsEntry</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.DataSourceQueryPolicy.Restriction"><span class="badge">E</span>DataSourceQueryPolicy.Restriction</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.EnvironmentTierPolicy.EnvironmentTier"><span class="badge">E</span>EnvironmentTierPolicy.EnvironmentTier</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingExceptionPolicy.MaskingException.Action"><span class="badge">E</span>MaskingExceptionPolicy.MaskingException.Action</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SQLReviewRuleLevel"><span class="badge">E</span>SQLReviewRuleLevel</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fproject.proto">store/project.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.Label"><span class="badge">M</span>Label</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Project"><span class="badge">M</span>Project</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fproject_webhook.proto">store/project_webhook.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.ProjectWebhookPayload"><span class="badge">M</span>ProjectWebhookPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fquery_history.proto">store/query_history.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.QueryHistoryPayload"><span class="badge">M</span>QueryHistoryPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2freview_config.proto">store/review_config.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.ReviewConfigPayload"><span class="badge">M</span>ReviewConfigPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2frole.proto">store/role.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.RolePermissions"><span class="badge">M</span>RolePermissions</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fsetting.proto">store/setting.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.AgentPluginSetting"><span class="badge">M</span>AgentPluginSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Announcement"><span class="badge">M</span>Announcement</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting"><span class="badge">M</span>AppIMSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting.Feishu"><span class="badge">M</span>AppIMSetting.Feishu</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting.Slack"><span class="badge">M</span>AppIMSetting.Slack</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting.Wecom"><span class="badge">M</span>AppIMSetting.Wecom</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataClassificationSetting"><span class="badge">M</span>DataClassificationSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.ClassificationEntry"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig.ClassificationEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.DataClassification"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig.DataClassification</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.Level"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig.Level</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ExternalApprovalPayload"><span class="badge">M</span>ExternalApprovalPayload</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ExternalApprovalSetting"><span class="badge">M</span>ExternalApprovalSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ExternalApprovalSetting.Node"><span class="badge">M</span>ExternalApprovalSetting.Node</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingAlgorithmSetting"><span class="badge">M</span>MaskingAlgorithmSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.FullMask"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm.FullMask</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.InnerOuterMask"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm.InnerOuterMask</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.MD5Mask"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm.MD5Mask</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.RangeMask"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm.RangeMask</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.RangeMask.Slice"><span class="badge">M</span>MaskingAlgorithmSetting.Algorithm.RangeMask.Slice</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaximumSQLResultSizeSetting"><span class="badge">M</span>MaximumSQLResultSizeSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SMTPMailDeliverySetting"><span class="badge">M</span>SMTPMailDeliverySetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchemaTemplateSetting"><span class="badge">M</span>SchemaTemplateSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchemaTemplateSetting.ColumnType"><span class="badge">M</span>SchemaTemplateSetting.ColumnType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchemaTemplateSetting.FieldTemplate"><span class="badge">M</span>SchemaTemplateSetting.FieldTemplate</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchemaTemplateSetting.TableTemplate"><span class="badge">M</span>SchemaTemplateSetting.TableTemplate</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SemanticTypeSetting"><span class="badge">M</span>SemanticTypeSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SemanticTypeSetting.SemanticType"><span class="badge">M</span>SemanticTypeSetting.SemanticType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceApprovalSetting"><span class="badge">M</span>WorkspaceApprovalSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceApprovalSetting.Rule"><span class="badge">M</span>WorkspaceApprovalSetting.Rule</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceProfileSetting"><span class="badge">M</span>WorkspaceProfileSetting</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.Announcement.AlertLevel"><span class="badge">E</span>Announcement.AlertLevel</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DatabaseChangeMode"><span class="badge">E</span>DatabaseChangeMode</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType"><span class="badge">E</span>MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SMTPMailDeliverySetting.Authentication"><span class="badge">E</span>SMTPMailDeliverySetting.Authentication</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SMTPMailDeliverySetting.Encryption"><span class="badge">E</span>SMTPMailDeliverySetting.Encryption</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fsheet.proto">store/sheet.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.SheetCommand"><span class="badge">M</span>SheetCommand</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SheetPayload"><span class="badge">M</span>SheetPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fslow_query.proto">store/slow_query.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.SlowQueryDetails"><span class="badge">M</span>SlowQueryDetails</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SlowQueryStatistics"><span class="badge">M</span>SlowQueryStatistics</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SlowQueryStatisticsItem"><span class="badge">M</span>SlowQueryStatisticsItem</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2ftask.proto">store/task.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.TaskDatabaseCreatePayload"><span class="badge">M</span>TaskDatabaseCreatePayload</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskDatabaseDataExportPayload"><span class="badge">M</span>TaskDatabaseDataExportPayload</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskDatabaseUpdatePayload"><span class="badge">M</span>TaskDatabaseUpdatePayload</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskDatabaseUpdatePayload.FlagsEntry"><span class="badge">M</span>TaskDatabaseUpdatePayload.FlagsEntry</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2ftask_run.proto">store/task_run.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.PriorBackupDetail"><span class="badge">M</span>PriorBackupDetail</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PriorBackupDetail.Item"><span class="badge">M</span>PriorBackupDetail.Item</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PriorBackupDetail.Item.Table"><span class="badge">M</span>PriorBackupDetail.Item.Table</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchedulerInfo"><span class="badge">M</span>SchedulerInfo</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchedulerInfo.WaitingCause"><span class="badge">M</span>SchedulerInfo.WaitingCause</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunResult"><span class="badge">M</span>TaskRunResult</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunResult.Position"><span class="badge">M</span>TaskRunResult.Position</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2ftask_run_log.proto">store/task_run_log.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog"><span class="badge">M</span>TaskRunLog</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.CommandExecute"><span class="badge">M</span>TaskRunLog.CommandExecute</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.CommandResponse"><span class="badge">M</span>TaskRunLog.CommandResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.DatabaseSyncEnd"><span class="badge">M</span>TaskRunLog.DatabaseSyncEnd</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.DatabaseSyncStart"><span class="badge">M</span>TaskRunLog.DatabaseSyncStart</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.PriorBackupEnd"><span class="badge">M</span>TaskRunLog.PriorBackupEnd</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.PriorBackupStart"><span class="badge">M</span>TaskRunLog.PriorBackupStart</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.SchemaDumpEnd"><span class="badge">M</span>TaskRunLog.SchemaDumpEnd</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.SchemaDumpStart"><span class="badge">M</span>TaskRunLog.SchemaDumpStart</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.TaskRunStatusUpdate"><span class="badge">M</span>TaskRunLog.TaskRunStatusUpdate</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.TransactionControl"><span class="badge">M</span>TaskRunLog.TransactionControl</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.TaskRunStatusUpdate.Status"><span class="badge">E</span>TaskRunLog.TaskRunStatusUpdate.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.TransactionControl.Type"><span class="badge">E</span>TaskRunLog.TransactionControl.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.Type"><span class="badge">E</span>TaskRunLog.Type</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fuser.proto">store/user.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.MFAConfig"><span class="badge">M</span>MFAConfig</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fvcs.proto">store/vcs.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.VCSConnector"><span class="badge">M</span>VCSConnector</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
        <li><a href="#scalar-value-types">Scalar Value Types</a></li>
      </ul>
    </div>

    
      
      <div class="file-heading">
        <h2 id="store/common.proto">store/common.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.DatabaseLabel">DatabaseLabel</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PageToken">PageToken</h3>
        <p>Used internally for obfuscating the page token.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>limit</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>offset</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Position">Position</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>line</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Range">Range</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>end</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.Engine">Engine</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ENGINE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CLICKHOUSE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MYSQL</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>POSTGRES</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SNOWFLAKE</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SQLITE</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TIDB</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MONGODB</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REDIS</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ORACLE</td>
                <td>9</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SPANNER</td>
                <td>10</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MSSQL</td>
                <td>11</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REDSHIFT</td>
                <td>12</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MARIADB</td>
                <td>13</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OCEANBASE</td>
                <td>14</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DM</td>
                <td>15</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RISINGWAVE</td>
                <td>16</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OCEANBASE_ORACLE</td>
                <td>17</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STARROCKS</td>
                <td>18</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DORIS</td>
                <td>19</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>HIVE</td>
                <td>20</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ELASTICSEARCH</td>
                <td>21</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BIGQUERY</td>
                <td>22</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DYNAMODB</td>
                <td>23</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABRICKS</td>
                <td>24</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.ExportFormat">ExportFormat</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>FORMAT_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CSV</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>JSON</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SQL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>XLSX</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.MaskingLevel">MaskingLevel</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>MASKING_LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NONE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PARTIAL</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FULL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.VCSType">VCSType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>VCS_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GITHUB</td>
                <td>1</td>
                <td><p>GitHub type. Using for GitHub community edition(ce).</p></td>
              </tr>
            
              <tr>
                <td>GITLAB</td>
                <td>2</td>
                <td><p>GitLab type. Using for GitLab community edition(ce) and enterprise edition(ee).</p></td>
              </tr>
            
              <tr>
                <td>BITBUCKET</td>
                <td>3</td>
                <td><p>BitBucket type. Using for BitBucket cloud or BitBucket server.</p></td>
              </tr>
            
              <tr>
                <td>AZURE_DEVOPS</td>
                <td>4</td>
                <td><p>Azure DevOps. Using for Azure DevOps GitOps workflow.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/advice.proto">store/advice.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.Advice">Advice</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.store.Advice.Status">Advice.Status</a></td>
                  <td></td>
                  <td><p>The advice status. </p></td>
                </tr>
              
                <tr>
                  <td>code</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The advice code. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The advice title. </p></td>
                </tr>
              
                <tr>
                  <td>content</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The advice content. </p></td>
                </tr>
              
                <tr>
                  <td>detail</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The advice detail. </p></td>
                </tr>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p>1-based positions of the sql statment. </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.Advice.Status">Advice.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p>Unspecified.</p></td>
              </tr>
            
              <tr>
                <td>SUCCESS</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/anomaly.proto">store/anomaly.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.AnomalyConnectionPayload">AnomalyConnectionPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>detail</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Connection failure detail </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AnomalyDatabaseSchemaDriftPayload">AnomalyDatabaseSchemaDriftPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema version corresponds to the expected schema </p></td>
                </tr>
              
                <tr>
                  <td>expect</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The expected latest schema stored in the migration history table </p></td>
                </tr>
              
                <tr>
                  <td>actual</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The actual schema dumped from the database </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/approval.proto">store/approval.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.ApprovalFlow">ApprovalFlow</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>steps</td>
                  <td><a href="#bytebase.store.ApprovalStep">ApprovalStep</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ApprovalNode">ApprovalNode</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.ApprovalNode.Type">ApprovalNode.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>group_value</td>
                  <td><a href="#bytebase.store.ApprovalNode.GroupValue">ApprovalNode.GroupValue</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>role</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: roles/{role} </p></td>
                </tr>
              
                <tr>
                  <td>external_node_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ApprovalStep">ApprovalStep</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.ApprovalStep.Type">ApprovalStep.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>nodes</td>
                  <td><a href="#bytebase.store.ApprovalNode">ApprovalNode</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ApprovalTemplate">ApprovalTemplate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>flow</td>
                  <td><a href="#bytebase.store.ApprovalFlow">ApprovalFlow</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>creator_id</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssuePayloadApproval">IssuePayloadApproval</h3>
        <p>IssuePayloadApproval is a part of the payload of an issue.</p><p>IssuePayloadApproval records the approval template used and the approval history.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>approval_templates</td>
                  <td><a href="#bytebase.store.ApprovalTemplate">ApprovalTemplate</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>approvers</td>
                  <td><a href="#bytebase.store.IssuePayloadApproval.Approver">IssuePayloadApproval.Approver</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>approval_finding_done</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If the value is `false`, it means that the backend is still finding matching approval templates.
If `true`, other fields are available. </p></td>
                </tr>
              
                <tr>
                  <td>approval_finding_error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>risk_level</td>
                  <td><a href="#bytebase.store.IssuePayloadApproval.RiskLevel">IssuePayloadApproval.RiskLevel</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssuePayloadApproval.Approver">IssuePayloadApproval.Approver</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.store.IssuePayloadApproval.Approver.Status">IssuePayloadApproval.Approver.Status</a></td>
                  <td></td>
                  <td><p>The new status. </p></td>
                </tr>
              
                <tr>
                  <td>principal_id</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The principal id of the approver. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.ApprovalNode.GroupValue">ApprovalNode.GroupValue</h3>
        <p>The predefined user groups are:</p><p>- WORKSPACE_OWNER</p><p>- WORKSPACE_DBA</p><p>- PROJECT_OWNER</p><p>- PROJECT_MEMBER</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>GROUP_VALUE_UNSPECIFILED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WORKSPACE_OWNER</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WORKSPACE_DBA</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PROJECT_OWNER</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PROJECT_MEMBER</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.ApprovalNode.Type">ApprovalNode.Type</h3>
        <p>Type of the ApprovalNode.</p><p>type determines who should approve this node.</p><p>ANY_IN_GROUP means the ApprovalNode can be approved by an user from our predefined user group.</p><p>See GroupValue below for the predefined user groups.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ANY_IN_GROUP</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.ApprovalStep.Type">ApprovalStep.Type</h3>
        <p>Type of the ApprovalStep</p><p>ALL means every node must be approved to proceed.</p><p>ANY means approving any node will proceed.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALL</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ANY</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.IssuePayloadApproval.Approver.Status">IssuePayloadApproval.Approver.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>APPROVED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REJECTED</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.IssuePayloadApproval.RiskLevel">IssuePayloadApproval.RiskLevel</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>RISK_LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LOW</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODERATE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>HIGH</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/audit_log.proto">store/audit_log.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.AuditLog">AuditLog</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The project or workspace the audit log belongs to.
Formats:
- projects/{project}
- workspaces/{workspace} </p></td>
                </tr>
              
                <tr>
                  <td>method</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>e.g. /bytebase.v1.SQLService/Query </p></td>
                </tr>
              
                <tr>
                  <td>resource</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>resource name
projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>user</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: users/{userUID}. </p></td>
                </tr>
              
                <tr>
                  <td>severity</td>
                  <td><a href="#bytebase.store.AuditLog.Severity">AuditLog.Severity</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>request</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Marshalled request. </p></td>
                </tr>
              
                <tr>
                  <td>response</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Marshalled response.
Some fields are omitted because they are too large or contain sensitive information. </p></td>
                </tr>
              
                <tr>
                  <td>status</td>
                  <td><a href="#google.rpc.Status">google.rpc.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>service_data</td>
                  <td><a href="#google.protobuf.Any">google.protobuf.Any</a></td>
                  <td></td>
                  <td><p>service-specific data about the request, response, and other activities. </p></td>
                </tr>
              
                <tr>
                  <td>request_metadata</td>
                  <td><a href="#bytebase.store.RequestMetadata">RequestMetadata</a></td>
                  <td></td>
                  <td><p>Metadata about the operation. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.RequestMetadata">RequestMetadata</h3>
        <p>Metadata about the request.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>caller_ip</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The IP address of the caller. </p></td>
                </tr>
              
                <tr>
                  <td>caller_supplied_user_agent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user agent of the caller.
This information is not authenticated and should be treated accordingly. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.AuditLog.Severity">AuditLog.Severity</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>DEFAULT</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DEBUG</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INFO</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NOTICE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CRITICAL</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>EMERGENCY</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/database.proto">store/database.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.CheckConstraintMetadata">CheckConstraintMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a check constraint. </p></td>
                </tr>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The expression is the expression of a check constraint. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ColumnConfig">ColumnConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a column. </p></td>
                </tr>
              
                <tr>
                  <td>semantic_type_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.store.ColumnConfig.LabelsEntry">ColumnConfig.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p>The user labels for a column. </p></td>
                </tr>
              
                <tr>
                  <td>classification_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ColumnConfig.LabelsEntry">ColumnConfig.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ColumnMetadata">ColumnMetadata</h3>
        <p>ColumnMetadata is the metadata for columns.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a column. </p></td>
                </tr>
              
                <tr>
                  <td>position</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The position is the position in columns. </p></td>
                </tr>
              
                <tr>
                  <td>default</td>
                  <td><a href="#google.protobuf.StringValue">google.protobuf.StringValue</a></td>
                  <td></td>
                  <td><p>The default is the default of a column. Use google.protobuf.StringValue to distinguish between an empty string default value or no default. </p></td>
                </tr>
              
                <tr>
                  <td>default_null</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>default_expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>on_update</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The on_update is the on update action of a column.
For MySQL like databases, it&#39;s only supported for TIMESTAMP columns with CURRENT_TIMESTAMP as on update value. </p></td>
                </tr>
              
                <tr>
                  <td>nullable</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The nullable is the nullable of a column. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The type is the type of a column. </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The character_set is the character_set of a column. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The collation is the collation of a column. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a column.
classification and user_comment is parsed from the comment. </p></td>
                </tr>
              
                <tr>
                  <td>user_comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user_comment is the user comment of a table parsed from the comment. </p></td>
                </tr>
              
                <tr>
                  <td>generation</td>
                  <td><a href="#bytebase.store.GenerationMetadata">GenerationMetadata</a></td>
                  <td></td>
                  <td><p>The generation is for generated columns. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DatabaseConfig">DatabaseConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_configs</td>
                  <td><a href="#bytebase.store.SchemaConfig">SchemaConfig</a></td>
                  <td>repeated</td>
                  <td><p>The schema_configs is the list of configs for schemas in a database. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DatabaseMetadata">DatabaseMetadata</h3>
        <p>DatabaseMetadata is the metadata for databases.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.store.DatabaseMetadata.LabelsEntry">DatabaseMetadata.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>last_sync_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DatabaseMetadata.LabelsEntry">DatabaseMetadata.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DatabaseSchemaMetadata">DatabaseSchemaMetadata</h3>
        <p>DatabaseSchemaMetadata is the schema metadata for databases.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schemas</td>
                  <td><a href="#bytebase.store.SchemaMetadata">SchemaMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The schemas is the list of schemas in a database. </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The character_set is the character set of a database. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The collation is the collation of a database. </p></td>
                </tr>
              
                <tr>
                  <td>extensions</td>
                  <td><a href="#bytebase.store.ExtensionMetadata">ExtensionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The extensions is the list of extensions in a database. </p></td>
                </tr>
              
                <tr>
                  <td>datashare</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The database belongs to a datashare. </p></td>
                </tr>
              
                <tr>
                  <td>service_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The service name of the database. It&#39;s the Oracle specific concept. </p></td>
                </tr>
              
                <tr>
                  <td>linked_databases</td>
                  <td><a href="#bytebase.store.LinkedDatabaseMetadata">LinkedDatabaseMetadata</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DependentColumn">DependentColumn</h3>
        <p>DependentColumn is the metadata for dependent columns.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema is the schema of a reference column. </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The table is the table of a reference column. </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The column is the name of a reference column. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ExtensionMetadata">ExtensionMetadata</h3>
        <p>ExtensionMetadata is the metadata for extensions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of an extension. </p></td>
                </tr>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema is the extension that is installed to. But the extension usage is not limited to the schema. </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The version is the version of an extension. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The description is the description of an extension. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ExternalTableMetadata">ExternalTableMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a external table. </p></td>
                </tr>
              
                <tr>
                  <td>external_server_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The external_server_name is the name of the external server. </p></td>
                </tr>
              
                <tr>
                  <td>external_database_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The external_database_name is the name of the external database. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#bytebase.store.ColumnMetadata">ColumnMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The columns is the ordered list of columns in a foreign table. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ForeignKeyMetadata">ForeignKeyMetadata</h3>
        <p>ForeignKeyMetadata is the metadata for foreign keys.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The columns are the ordered referencing columns of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>referenced_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The referenced_schema is the referenced schema name of a foreign key.
It is an empty string for databases without such concept such as MySQL. </p></td>
                </tr>
              
                <tr>
                  <td>referenced_table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The referenced_table is the referenced table name of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>referenced_columns</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The referenced_columns are the ordered referenced columns of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>on_delete</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The on_delete is the on delete action of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>on_update</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The on_update is the on update action of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>match_type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The match_type is the match type of a foreign key.
The match_type is the PostgreSQL specific field.
It&#39;s empty string for other databases. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.FunctionConfig">FunctionConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a function. </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last updater of the function in branch.
Format: users/{userUID}. </p></td>
                </tr>
              
                <tr>
                  <td>source_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last change come from branch.
Format: projcets/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the function is updated in branch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.FunctionMetadata">FunctionMetadata</h3>
        <p>FunctionMetadata is the metadata for functions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a function. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a function. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.GenerationMetadata">GenerationMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.GenerationMetadata.Type">GenerationMetadata.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IndexMetadata">IndexMetadata</h3>
        <p>IndexMetadata is the metadata for indexes.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of an index. </p></td>
                </tr>
              
                <tr>
                  <td>expressions</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The expressions are the ordered columns or expressions of an index.
This could refer to a column or an expression. </p></td>
                </tr>
              
                <tr>
                  <td>key_length</td>
                  <td><a href="#int64">int64</a></td>
                  <td>repeated</td>
                  <td><p>The key_lengths are the ordered key lengths of an index.
If the key length is not specified, it&#39;s -1. </p></td>
                </tr>
              
                <tr>
                  <td>descending</td>
                  <td><a href="#bool">bool</a></td>
                  <td>repeated</td>
                  <td><p>The descending is the ordered descending of an index. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The type is the type of an index. </p></td>
                </tr>
              
                <tr>
                  <td>unique</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The unique is whether the index is unique. </p></td>
                </tr>
              
                <tr>
                  <td>primary</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The primary is whether the index is a primary key index. </p></td>
                </tr>
              
                <tr>
                  <td>visible</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The visible is whether the index is visible. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of an index. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition of an index. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.InstanceRoleMetadata">InstanceRoleMetadata</h3>
        <p>InstanceRoleMetadata is the message for instance role.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The role name. It&#39;s unique within the instance. </p></td>
                </tr>
              
                <tr>
                  <td>grant</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The grant display string on the instance. It&#39;s generated by database engine. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.LinkedDatabaseMetadata">LinkedDatabaseMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>username</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaterializedViewMetadata">MaterializedViewMetadata</h3>
        <p>MaterializedViewMetadata is the metadata for materialized views.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a view. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a view. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a view. </p></td>
                </tr>
              
                <tr>
                  <td>dependent_columns</td>
                  <td><a href="#bytebase.store.DependentColumn">DependentColumn</a></td>
                  <td>repeated</td>
                  <td><p>The dependent_columns is the list of dependent columns of a view. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ProcedureConfig">ProcedureConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a procedure. </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last updater of the procedure in branch.
Format: users/{userUID}. </p></td>
                </tr>
              
                <tr>
                  <td>source_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last change come from branch.
Format: projcets/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the procedure is updated in branch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ProcedureMetadata">ProcedureMetadata</h3>
        <p>ProcedureMetadata is the metadata for procedures.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a procedure. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a procedure. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchemaConfig">SchemaConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the schema name.
It is an empty string for databases without such concept such as MySQL. </p></td>
                </tr>
              
                <tr>
                  <td>table_configs</td>
                  <td><a href="#bytebase.store.TableConfig">TableConfig</a></td>
                  <td>repeated</td>
                  <td><p>The table_configs is the list of configs for tables in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>function_configs</td>
                  <td><a href="#bytebase.store.FunctionConfig">FunctionConfig</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>procedure_configs</td>
                  <td><a href="#bytebase.store.ProcedureConfig">ProcedureConfig</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>view_configs</td>
                  <td><a href="#bytebase.store.ViewConfig">ViewConfig</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchemaMetadata">SchemaMetadata</h3>
        <p>SchemaMetadata is the metadata for schemas.</p><p>This is the concept of schema in Postgres, but it's a no-op for MySQL.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the schema name.
It is an empty string for databases without such concept such as MySQL. </p></td>
                </tr>
              
                <tr>
                  <td>tables</td>
                  <td><a href="#bytebase.store.TableMetadata">TableMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The tables is the list of tables in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>external_tables</td>
                  <td><a href="#bytebase.store.ExternalTableMetadata">ExternalTableMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The external_tables is the list of external tables in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>views</td>
                  <td><a href="#bytebase.store.ViewMetadata">ViewMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The views is the list of views in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>functions</td>
                  <td><a href="#bytebase.store.FunctionMetadata">FunctionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The functions is the list of functions in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>procedures</td>
                  <td><a href="#bytebase.store.ProcedureMetadata">ProcedureMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The procedures is the list of procedures in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>streams</td>
                  <td><a href="#bytebase.store.StreamMetadata">StreamMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The streams is the list of streams in a schema, currently, only used for Snowflake. </p></td>
                </tr>
              
                <tr>
                  <td>tasks</td>
                  <td><a href="#bytebase.store.TaskMetadata">TaskMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The routines is the list of routines in a schema, currently, only used for Snowflake. </p></td>
                </tr>
              
                <tr>
                  <td>materialized_views</td>
                  <td><a href="#bytebase.store.MaterializedViewMetadata">MaterializedViewMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The materialized_views is the list of materialized views in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>sequences</td>
                  <td><a href="#bytebase.store.SequenceMetadata">SequenceMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The sequences is the list of sequences in a schema. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SecretItem">SecretItem</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of the secret. </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The value is the value of the secret. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The description is the description of the secret. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Secrets">Secrets</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>items</td>
                  <td><a href="#bytebase.store.SecretItem">SecretItem</a></td>
                  <td>repeated</td>
                  <td><p>The list of secrets. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SequenceMetadata">SequenceMetadata</h3>
        <p>SequenceMetadata is the metadata for sequences.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of a sequence. </p></td>
                </tr>
              
                <tr>
                  <td>data_type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The data type of a sequence. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.StreamMetadata">StreamMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a stream. </p></td>
                </tr>
              
                <tr>
                  <td>table_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The table_name is the name of the table/view that the stream is created on. </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The owner of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.StreamMetadata.Type">StreamMetadata.Type</a></td>
                  <td></td>
                  <td><p>The type of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>stale</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Indicates whether the stream was last read before the `stale_after` time. </p></td>
                </tr>
              
                <tr>
                  <td>mode</td>
                  <td><a href="#bytebase.store.StreamMetadata.Mode">StreamMetadata.Mode</a></td>
                  <td></td>
                  <td><p>The mode of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition of the stream. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TableConfig">TableConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a table. </p></td>
                </tr>
              
                <tr>
                  <td>column_configs</td>
                  <td><a href="#bytebase.store.ColumnConfig">ColumnConfig</a></td>
                  <td>repeated</td>
                  <td><p>The column_configs is the ordered list of configs for columns in a table. </p></td>
                </tr>
              
                <tr>
                  <td>classification_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last updater of the table in branch.
Format: users/{userUID}. </p></td>
                </tr>
              
                <tr>
                  <td>source_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last change come from branch.
Format: projcets/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the table is updated in branch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TableMetadata">TableMetadata</h3>
        <p>TableMetadata is the metadata for tables.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a table. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#bytebase.store.ColumnMetadata">ColumnMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The columns is the ordered list of columns in a table. </p></td>
                </tr>
              
                <tr>
                  <td>indexes</td>
                  <td><a href="#bytebase.store.IndexMetadata">IndexMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The indexes is the list of indexes in a table. </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The engine is the engine of a table. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The collation is the collation of a table. </p></td>
                </tr>
              
                <tr>
                  <td>charset</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The character set of table. </p></td>
                </tr>
              
                <tr>
                  <td>row_count</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The row_count is the estimated number of rows of a table. </p></td>
                </tr>
              
                <tr>
                  <td>data_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The data_size is the estimated data size of a table. </p></td>
                </tr>
              
                <tr>
                  <td>index_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The index_size is the estimated index size of a table. </p></td>
                </tr>
              
                <tr>
                  <td>data_free</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The data_free is the estimated free data size of a table. </p></td>
                </tr>
              
                <tr>
                  <td>create_options</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The create_options is the create option of a table. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a table.
classification and user_comment is parsed from the comment. </p></td>
                </tr>
              
                <tr>
                  <td>user_comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user_comment is the user comment of a table parsed from the comment. </p></td>
                </tr>
              
                <tr>
                  <td>foreign_keys</td>
                  <td><a href="#bytebase.store.ForeignKeyMetadata">ForeignKeyMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The foreign_keys is the list of foreign keys in a table. </p></td>
                </tr>
              
                <tr>
                  <td>partitions</td>
                  <td><a href="#bytebase.store.TablePartitionMetadata">TablePartitionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The partitions is the list of partitions in a table. </p></td>
                </tr>
              
                <tr>
                  <td>check_constraints</td>
                  <td><a href="#bytebase.store.CheckConstraintMetadata">CheckConstraintMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The check_constraints is the list of check constraints in a table. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TablePartitionMetadata">TablePartitionMetadata</h3>
        <p>TablePartitionMetadata is the metadata for table partitions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a table partition. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.TablePartitionMetadata.Type">TablePartitionMetadata.Type</a></td>
                  <td></td>
                  <td><p>The type of a table partition. </p></td>
                </tr>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The expression is the expression of a table partition.
For PostgreSQL, the expression is the text of {FOR VALUES partition_bound_spec}, see https://www.postgresql.org/docs/current/sql-createtable.html.
For MySQL, the expression is the `expr` or `column_list` of the following syntax.
PARTITION BY
   { [LINEAR] HASH(expr)
   | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)
   | RANGE{(expr) | COLUMNS(column_list)}
   | LIST{(expr) | COLUMNS(column_list)} }. </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The value is the value of a table partition.
For MySQL, the value is for RANGE and LIST partition types,
- For a RANGE partition, it contains the value set in the partition&#39;s VALUES LESS THAN clause, which can be either an integer or MAXVALUE.
- For a LIST partition, this column contains the values defined in the partition&#39;s VALUES IN clause, which is a list of comma-separated integer values.
- For others, it&#39;s an empty string. </p></td>
                </tr>
              
                <tr>
                  <td>use_default</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The use_default is whether the users use the default partition, it stores the different value for different database engines.
For MySQL, it&#39;s [INT] type, 0 means not use default partition, otherwise, it&#39;s equals to number in syntax [SUB]PARTITION {number}. </p></td>
                </tr>
              
                <tr>
                  <td>subpartitions</td>
                  <td><a href="#bytebase.store.TablePartitionMetadata">TablePartitionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The subpartitions is the list of subpartitions in a table partition. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskMetadata">TaskMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a task. </p></td>
                </tr>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The id is the snowflake-generated id of a task.
Example: 01ad32a0-1bb6-5e93-0000-000000000001 </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The owner of the task. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment of the task. </p></td>
                </tr>
              
                <tr>
                  <td>warehouse</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The warehouse of the task. </p></td>
                </tr>
              
                <tr>
                  <td>schedule</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schedule interval of the task. </p></td>
                </tr>
              
                <tr>
                  <td>predecessors</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The predecessor tasks of the task. </p></td>
                </tr>
              
                <tr>
                  <td>state</td>
                  <td><a href="#bytebase.store.TaskMetadata.State">TaskMetadata.State</a></td>
                  <td></td>
                  <td><p>The state of the task. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The condition of the task. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition of the task. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ViewConfig">ViewConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a view. </p></td>
                </tr>
              
                <tr>
                  <td>updater</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last updater of the view in branch.
Format: users/{userUID}. </p></td>
                </tr>
              
                <tr>
                  <td>source_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last change come from branch.
Format: projcets/{project}/branches/{branch} </p></td>
                </tr>
              
                <tr>
                  <td>update_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The timestamp when the view is updated in branch. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ViewMetadata">ViewMetadata</h3>
        <p>ViewMetadata is the metadata for views.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name is the name of a view. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a view. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a view. </p></td>
                </tr>
              
                <tr>
                  <td>dependent_columns</td>
                  <td><a href="#bytebase.store.DependentColumn">DependentColumn</a></td>
                  <td>repeated</td>
                  <td><p>The dependent_columns is the list of dependent columns of a view. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.GenerationMetadata.Type">GenerationMetadata.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_VIRTUAL</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_STORED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.StreamMetadata.Mode">StreamMetadata.Mode</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>MODE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODE_DEFAULT</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODE_APPEND_ONLY</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODE_INSERT_ONLY</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.StreamMetadata.Type">StreamMetadata.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_DELTA</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.TablePartitionMetadata.Type">TablePartitionMetadata.Type</h3>
        <p>Type is the type of a table partition, some database engines may not support all types.</p><p>Only avilable for the following database engines now:</p><p>MySQL: RANGE, RANGE COLUMNS, LIST, LIST COLUMNS, HASH, LINEAR HASH, KEY, LINEAR_KEY (https://dev.mysql.com/doc/refman/8.0/en/partitioning-types.html)</p><p>TiDB: RANGE, RANGE COLUMNS, LIST, LIST COLUMNS, HASH, KEY</p><p>PostgreSQL: RANGE, LIST, HASH (https://www.postgresql.org/docs/current/ddl-partitioning.html)</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RANGE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RANGE_COLUMNS</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LIST</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LIST_COLUMNS</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>HASH</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LINEAR_HASH</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>KEY</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LINEAR_KEY</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.TaskMetadata.State">TaskMetadata.State</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATE_STARTED</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATE_SUSPENDED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/branch.proto">store/branch.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.BranchConfig">BranchConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>source_database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of source database.
Optional.
Example: instances/instance-id/databases/database-name. </p></td>
                </tr>
              
                <tr>
                  <td>source_branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the source branch.
Optional.
Example: projects/project-id/branches/branch-id. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.BranchSnapshot">BranchSnapshot</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>metadata</td>
                  <td><a href="#bytebase.store.DatabaseSchemaMetadata">DatabaseSchemaMetadata</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_config</td>
                  <td><a href="#bytebase.store.DatabaseConfig">DatabaseConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/changelist.proto">store/changelist.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.Changelist">Changelist</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>changes</td>
                  <td><a href="#bytebase.store.Changelist.Change">Changelist.Change</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Changelist.Change">Changelist.Change</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of a sheet. </p></td>
                </tr>
              
                <tr>
                  <td>source</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The source of origin.
1) change history: instances/{instance}/databases/{database}/changeHistories/{changeHistory}.
2) branch: projects/{project}/branches/{branch}.
3) raw SQL if empty. </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The migration version for a change. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/data_source.proto">store/data_source.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.DataSourceExternalSecret">DataSourceExternalSecret</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>secret_type</td>
                  <td><a href="#bytebase.store.DataSourceExternalSecret.SecretType">DataSourceExternalSecret.SecretType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>auth_type</td>
                  <td><a href="#bytebase.store.DataSourceExternalSecret.AuthType">DataSourceExternalSecret.AuthType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>app_role</td>
                  <td><a href="#bytebase.store.DataSourceExternalSecret.AppRoleAuthOption">DataSourceExternalSecret.AppRoleAuthOption</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>engine name is the name for secret engine. </p></td>
                </tr>
              
                <tr>
                  <td>secret_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the secret name in the engine to store the password. </p></td>
                </tr>
              
                <tr>
                  <td>password_key_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the key name for the password. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSourceExternalSecret.AppRoleAuthOption">DataSourceExternalSecret.AppRoleAuthOption</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>secret_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the secret id for the role without ttl. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.DataSourceExternalSecret.AppRoleAuthOption.SecretType">DataSourceExternalSecret.AppRoleAuthOption.SecretType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>mount_path</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The path where the approle auth method is mounted. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSourceOptions">DataSourceOptions</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>srv</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>srv is a boolean flag that indicates whether the host is a DNS SRV record. </p></td>
                </tr>
              
                <tr>
                  <td>authentication_database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>authentication_database is the database name to authenticate against, which stores the user credentials. </p></td>
                </tr>
              
                <tr>
                  <td>sid</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>sid and service_name are used for Oracle. </p></td>
                </tr>
              
                <tr>
                  <td>service_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ssh_host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>SSH related
The hostname of the SSH server agent. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The port of the SSH server agent. It&#39;s 22 typically. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_user</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user to login the server. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_obfuscated_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The password to login the server. If it&#39;s empty string, no password is required. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_obfuscated_private_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The private key to login the server. If it&#39;s empty string, we will use the system default private key from os.Getenv(&#34;SSH_AUTH_SOCK&#34;). </p></td>
                </tr>
              
                <tr>
                  <td>authentication_private_key_obfuscated</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>PKCS#8 private key in PEM format. If it&#39;s empty string, no private key is required.
Used for authentication when connecting to the data source. </p></td>
                </tr>
              
                <tr>
                  <td>external_secret</td>
                  <td><a href="#bytebase.store.DataSourceExternalSecret">DataSourceExternalSecret</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>authentication_type</td>
                  <td><a href="#bytebase.store.DataSourceOptions.AuthenticationType">DataSourceOptions.AuthenticationType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sasl_config</td>
                  <td><a href="#bytebase.store.SASLConfig">SASLConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>additional_addresses</td>
                  <td><a href="#bytebase.store.DataSourceOptions.Address">DataSourceOptions.Address</a></td>
                  <td>repeated</td>
                  <td><p>additional_addresses is used for MongoDB replica set. </p></td>
                </tr>
              
                <tr>
                  <td>replica_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>replica_set is used for MongoDB replica set. </p></td>
                </tr>
              
                <tr>
                  <td>direct_connection</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>direct_connection is used for MongoDB to dispatch all the operations to the node specified in the connection string. </p></td>
                </tr>
              
                <tr>
                  <td>region</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>region is the location of where the DB is, works for AWS RDS. For example, us-east-1. </p></td>
                </tr>
              
                <tr>
                  <td>warehouse_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>warehouse_id is used by Databricks. </p></td>
                </tr>
              
                <tr>
                  <td>master_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>master_name is the master name used by connecting redis-master via redis sentinel. </p></td>
                </tr>
              
                <tr>
                  <td>master_username</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>master_username and master_obfuscated_password are master credentials used by redis sentinel mode. </p></td>
                </tr>
              
                <tr>
                  <td>master_obfuscated_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>redis_type</td>
                  <td><a href="#bytebase.store.DataSourceOptions.RedisType">DataSourceOptions.RedisType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>use_ssl</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Use SSL to connect to the data source. By default, we use system default SSL configuration. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSourceOptions.Address">DataSourceOptions.Address</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.KerberosConfig">KerberosConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>primary</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>instance</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>realm</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>keytab</td>
                  <td><a href="#bytes">bytes</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>kdc_host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>kdc_port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>kdc_transport_protocol</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SASLConfig">SASLConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>krb_config</td>
                  <td><a href="#bytebase.store.KerberosConfig">KerberosConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.DataSourceExternalSecret.AppRoleAuthOption.SecretType">DataSourceExternalSecret.AppRoleAuthOption.SecretType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SECRET_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PLAIN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENVIRONMENT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.DataSourceExternalSecret.AuthType">DataSourceExternalSecret.AuthType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>AUTH_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TOKEN</td>
                <td>1</td>
                <td><p>ref: https://developer.hashicorp.com/vault/docs/auth/token</p></td>
              </tr>
            
              <tr>
                <td>VAULT_APP_ROLE</td>
                <td>2</td>
                <td><p>ref: https://developer.hashicorp.com/vault/docs/auth/approle</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.DataSourceExternalSecret.SecretType">DataSourceExternalSecret.SecretType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SAECRET_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>VAULT_KV_V2</td>
                <td>1</td>
                <td><p>ref: https://developer.hashicorp.com/vault/api-docs/secret/kv/kv-v2</p></td>
              </tr>
            
              <tr>
                <td>AWS_SECRETS_MANAGER</td>
                <td>2</td>
                <td><p>ref: https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html</p></td>
              </tr>
            
              <tr>
                <td>GCP_SECRET_MANAGER</td>
                <td>3</td>
                <td><p>ref: https://cloud.google.com/secret-manager/docs</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.DataSourceOptions.AuthenticationType">DataSourceOptions.AuthenticationType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>AUTHENTICATION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PASSWORD</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GOOGLE_CLOUD_SQL_IAM</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AWS_RDS_IAM</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.DataSourceOptions.RedisType">DataSourceOptions.RedisType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>REDIS_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STANDALONE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SENTINEL</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CLUSTER</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/db_group.proto">store/db_group.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.DatabaseGroupPayload">DatabaseGroupPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>multitenancy</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/export_archive.proto">store/export_archive.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.ExportArchivePayload">ExportArchivePayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>file_format</td>
                  <td><a href="#bytebase.store.ExportFormat">ExportFormat</a></td>
                  <td></td>
                  <td><p>The exported file format. e.g. JSON, CSV, SQL </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/group.proto">store/group.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.GroupMember">GroupMember</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>member</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Member is the principal who belong to this group.

Format: users/{userUID}. </p></td>
                </tr>
              
                <tr>
                  <td>role</td>
                  <td><a href="#bytebase.store.GroupMember.Role">GroupMember.Role</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.GroupPayload">GroupPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>members</td>
                  <td><a href="#bytebase.store.GroupMember">GroupMember</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.GroupMember.Role">GroupMember.Role</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ROLE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OWNER</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MEMBER</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/idp.proto">store/idp.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.FieldMapping">FieldMapping</h3>
        <p>FieldMapping saves the field names from user info API of identity provider.</p><p>As we save all raw json string of user info response data into `principal.idp_user_info`,</p><p>we can extract the relevant data based with `FieldMapping`.</p><p>e.g. For GitHub authenticated user API, it will return `login`, `name` and `email` in response.</p><p>Then the identifier of FieldMapping will be `login`, display_name will be `name`,</p><p>and email will be `email`.</p><p>reference: https://docs.github.com/en/rest/users/users?apiVersion=2022-11-28#get-the-authenticated-user</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>identifier</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Identifier is the field name of the unique identifier in 3rd-party idp user info. Required. </p></td>
                </tr>
              
                <tr>
                  <td>display_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>DisplayName is the field name of display name in 3rd-party idp user info. Optional. </p></td>
                </tr>
              
                <tr>
                  <td>email</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Email is the field name of primary email in 3rd-party idp user info. Optional. </p></td>
                </tr>
              
                <tr>
                  <td>phone</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Phone is the field name of primary phone in 3rd-party idp user info. Optional. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IdentityProviderConfig">IdentityProviderConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>oauth2_config</td>
                  <td><a href="#bytebase.store.OAuth2IdentityProviderConfig">OAuth2IdentityProviderConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>oidc_config</td>
                  <td><a href="#bytebase.store.OIDCIdentityProviderConfig">OIDCIdentityProviderConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ldap_config</td>
                  <td><a href="#bytebase.store.LDAPIdentityProviderConfig">LDAPIdentityProviderConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IdentityProviderUserInfo">IdentityProviderUserInfo</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>identifier</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Identifier is the value of the unique identifier in 3rd-party idp user info. </p></td>
                </tr>
              
                <tr>
                  <td>display_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>DisplayName is the value of display name in 3rd-party idp user info. </p></td>
                </tr>
              
                <tr>
                  <td>email</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Email is the value of primary email in 3rd-party idp user info. </p></td>
                </tr>
              
                <tr>
                  <td>phone</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Phone is the value of primary phone in 3rd-party idp user info. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.LDAPIdentityProviderConfig">LDAPIdentityProviderConfig</h3>
        <p>LDAPIdentityProviderConfig is the structure for LDAP identity provider config.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Host is the hostname or IP address of the LDAP server, e.g.
&#34;ldap.example.com&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Port is the port number of the LDAP server, e.g. 389. When not set, the
default port of the corresponding security protocol will be used, i.e. 389
for StartTLS and 636 for LDAPS. </p></td>
                </tr>
              
                <tr>
                  <td>skip_tls_verify</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>SkipTLSVerify controls whether to skip TLS certificate verification. </p></td>
                </tr>
              
                <tr>
                  <td>bind_dn</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>BindDN is the DN of the user to bind as a service account to perform
search requests. </p></td>
                </tr>
              
                <tr>
                  <td>bind_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>BindPassword is the password of the user to bind as a service account. </p></td>
                </tr>
              
                <tr>
                  <td>base_dn</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>BaseDN is the base DN to search for users, e.g. &#34;ou=users,dc=example,dc=com&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>user_filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>UserFilter is the filter to search for users, e.g. &#34;(uid=%s)&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>security_protocol</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>SecurityProtocol is the security protocol to be used for establishing
connections with the LDAP server. It should be either StartTLS or LDAPS, and
cannot be empty. </p></td>
                </tr>
              
                <tr>
                  <td>field_mapping</td>
                  <td><a href="#bytebase.store.FieldMapping">FieldMapping</a></td>
                  <td></td>
                  <td><p>FieldMapping is the mapping of the user attributes returned by the LDAP
server. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.OAuth2IdentityProviderConfig">OAuth2IdentityProviderConfig</h3>
        <p>OAuth2IdentityProviderConfig is the structure for OAuth2 identity provider config.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>auth_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>token_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>user_info_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>scopes</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>field_mapping</td>
                  <td><a href="#bytebase.store.FieldMapping">FieldMapping</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_tls_verify</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>auth_style</td>
                  <td><a href="#bytebase.store.OAuth2AuthStyle">OAuth2AuthStyle</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.OIDCIdentityProviderConfig">OIDCIdentityProviderConfig</h3>
        <p>OIDCIdentityProviderConfig is the structure for OIDC identity provider config.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>issuer</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>field_mapping</td>
                  <td><a href="#bytebase.store.FieldMapping">FieldMapping</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_tls_verify</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>auth_style</td>
                  <td><a href="#bytebase.store.OAuth2AuthStyle">OAuth2AuthStyle</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.IdentityProviderType">IdentityProviderType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>IDENTITY_PROVIDER_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OAUTH2</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OIDC</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LDAP</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.OAuth2AuthStyle">OAuth2AuthStyle</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>OAUTH2_AUTH_STYLE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>IN_PARAMS</td>
                <td>1</td>
                <td><p>IN_PARAMS sends the &#34;client_id&#34; and &#34;client_secret&#34; in the POST body
as application/x-www-form-urlencoded parameters.</p></td>
              </tr>
            
              <tr>
                <td>IN_HEADER</td>
                <td>2</td>
                <td><p>IN_HEADER sends the client_id and client_password using HTTP Basic Authorization.
This is an optional style described in the OAuth2 RFC 6749 section 2.3.1.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/instance.proto">store/instance.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.InstanceMetadata">InstanceMetadata</h3>
        <p>InstanceMetadata is the metadata for instances.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>mysql_lower_case_table_names</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The lower_case_table_names config for MySQL instances.
It is used to determine whether the table names and database names are case sensitive. </p></td>
                </tr>
              
                <tr>
                  <td>last_sync_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>roles</td>
                  <td><a href="#bytebase.store.InstanceRole">InstanceRole</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.InstanceOptions">InstanceOptions</h3>
        <p>InstanceOptions is the option for instances.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sync_interval</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>How often the instance is synced. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_connections</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of connections.
The default is 10 if the value is unset or zero. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.InstanceRole">InstanceRole</h3>
        <p>InstanceRole is the API message for instance role.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The role name. </p></td>
                </tr>
              
                <tr>
                  <td>connection_limit</td>
                  <td><a href="#int32">int32</a></td>
                  <td>optional</td>
                  <td><p>The connection count limit for this role. </p></td>
                </tr>
              
                <tr>
                  <td>valid_until</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The expiration for the role&#39;s password. </p></td>
                </tr>
              
                <tr>
                  <td>attribute</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The role attribute.
For PostgreSQL, it containt super_user, no_inherit, create_role, create_db, can_login, replication and bypass_rls. Docs: https://www.postgresql.org/docs/current/role-attributes.html
For MySQL, it&#39;s the global privileges as GRANT statements, which means it only contains &#34;GRANT ... ON *.* TO ...&#34;. Docs: https://dev.mysql.com/doc/refman/8.0/en/grant.html </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/instance_change_history.proto">store/instance_change_history.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.ChangedResourceDatabase">ChangedResourceDatabase</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schemas</td>
                  <td><a href="#bytebase.store.ChangedResourceSchema">ChangedResourceSchema</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResourceFunction">ChangedResourceFunction</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.store.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of sub-strings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResourceProcedure">ChangedResourceProcedure</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.store.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of sub-strings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResourceSchema">ChangedResourceSchema</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>tables</td>
                  <td><a href="#bytebase.store.ChangedResourceTable">ChangedResourceTable</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>views</td>
                  <td><a href="#bytebase.store.ChangedResourceView">ChangedResourceView</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>functions</td>
                  <td><a href="#bytebase.store.ChangedResourceFunction">ChangedResourceFunction</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>procedures</td>
                  <td><a href="#bytebase.store.ChangedResourceProcedure">ChangedResourceProcedure</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResourceTable">ChangedResourceTable</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table_rows</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>estimated row count of the table </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.store.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of sub-strings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResourceView">ChangedResourceView</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.store.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of sub-strings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResources">ChangedResources</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>databases</td>
                  <td><a href="#bytebase.store.ChangedResourceDatabase">ChangedResourceDatabase</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.InstanceChangeHistoryPayload">InstanceChangeHistoryPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>changed_resources</td>
                  <td><a href="#bytebase.store.ChangedResources">ChangedResources</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/issue.proto">store/issue.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.GrantRequest">GrantRequest</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The requested role.
Format: roles/EXPORTER. </p></td>
                </tr>
              
                <tr>
                  <td>user</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user to be granted.
Format: users/{userUID}. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>expiration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssuePayload">IssuePayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>approval</td>
                  <td><a href="#bytebase.store.IssuePayloadApproval">IssuePayloadApproval</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>grant_request</td>
                  <td><a href="#bytebase.store.GrantRequest">GrantRequest</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/issue_comment.proto">store/issue_comment.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.IssueCommentPayload">IssueCommentPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>approval</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.Approval">IssueCommentPayload.Approval</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>issue_update</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.IssueUpdate">IssueCommentPayload.IssueUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>stage_end</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.StageEnd">IssueCommentPayload.StageEnd</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_update</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.TaskUpdate">IssueCommentPayload.TaskUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_prior_backup</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.TaskPriorBackup">IssueCommentPayload.TaskPriorBackup</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.Approval">IssueCommentPayload.Approval</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.Approval.Status">IssueCommentPayload.Approval.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.IssueUpdate">IssueCommentPayload.IssueUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>from_title</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_title</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_description</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_description</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_status</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.IssueUpdate.IssueStatus">IssueCommentPayload.IssueUpdate.IssueStatus</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_status</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.IssueUpdate.IssueStatus">IssueCommentPayload.IssueUpdate.IssueStatus</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_labels</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_labels</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.StageEnd">IssueCommentPayload.StageEnd</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>stage</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.TaskPriorBackup">IssueCommentPayload.TaskPriorBackup</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>task</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>tables</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.TaskPriorBackup.Table">IssueCommentPayload.TaskPriorBackup.Table</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>original_line</td>
                  <td><a href="#int32">int32</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.TaskPriorBackup.Table">IssueCommentPayload.TaskPriorBackup.Table</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.TaskUpdate">IssueCommentPayload.TaskUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>tasks</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_sheet</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>to_sheet</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>from_earliest_allowed_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_earliest_allowed_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_status</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.TaskUpdate.Status">IssueCommentPayload.TaskUpdate.Status</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.IssueCommentPayload.Approval.Status">IssueCommentPayload.Approval.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>APPROVED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REJECTED</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.IssueCommentPayload.IssueUpdate.IssueStatus">IssueCommentPayload.IssueUpdate.IssueStatus</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ISSUE_STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OPEN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DONE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CANCELED</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.IssueCommentPayload.TaskUpdate.Status">IssueCommentPayload.TaskUpdate.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RUNNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DONE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FAILED</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SKIPPED</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CANCELED</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/plan.proto">store/plan.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.PlanConfig">PlanConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>steps</td>
                  <td><a href="#bytebase.store.PlanConfig.Step">PlanConfig.Step</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>vcs_source</td>
                  <td><a href="#bytebase.store.PlanConfig.VCSSource">PlanConfig.VCSSource</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.ChangeDatabaseConfig">PlanConfig.ChangeDatabaseConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>target</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the target.
Format: instances/{instance-id}/databases/{database-name}.
Format: projects/{project}/databaseGroups/{databaseGroup}. </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the sheet.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig.Type">PlanConfig.ChangeDatabaseConfig.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>schema_version is parsed from VCS file name.
It is automatically generated in the UI workflow. </p></td>
                </tr>
              
                <tr>
                  <td>ghost_flags</td>
                  <td><a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry">PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>pre_update_backup_detail</td>
                  <td><a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig.PreUpdateBackupDetail">PlanConfig.ChangeDatabaseConfig.PreUpdateBackupDetail</a></td>
                  <td>optional</td>
                  <td><p>If set, a backup of the modified data will be created automatically before any changes are applied. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry">PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.ChangeDatabaseConfig.PreUpdateBackupDetail">PlanConfig.ChangeDatabaseConfig.PreUpdateBackupDetail</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database for keeping the backup data.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.CreateDatabaseConfig">PlanConfig.CreateDatabaseConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>target</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the instance on which the database is created.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database to create. </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>table is the name of the table, if it is not empty, Bytebase should create a table after creating the database.
For example, in MongoDB, it only creates the database when we first store data in that database. </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>character_set is the character set of the database. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>collation is the collation of the database. </p></td>
                </tr>
              
                <tr>
                  <td>cluster</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>cluster is the cluster of the database. This is only applicable to ClickHouse for &#34;ON CLUSTER &lt;&lt;cluster&gt;&gt;&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>owner is the owner of the database. This is only applicable to Postgres for &#34;WITH OWNER &lt;&lt;owner&gt;&gt;&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>backup</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>backup is the resource name of the backup.
Format: instances/{instance}/databases/{database}/backups/{backup-name} </p></td>
                </tr>
              
                <tr>
                  <td>environment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The environment resource.
Format: environments/prod where prod is the environment resource ID. </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.store.PlanConfig.CreateDatabaseConfig.LabelsEntry">PlanConfig.CreateDatabaseConfig.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p>labels of the database. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.CreateDatabaseConfig.LabelsEntry">PlanConfig.CreateDatabaseConfig.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.ExportDataConfig">PlanConfig.ExportDataConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>target</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the target.
Format: instances/{instance-id}/databases/{database-name} </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the sheet.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>format</td>
                  <td><a href="#bytebase.store.ExportFormat">ExportFormat</a></td>
                  <td></td>
                  <td><p>The format of the exported file. </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The zip password provide by users.
Leave it empty if no needs to encrypt the zip file. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.Spec">PlanConfig.Spec</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>earliest_allowed_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>earliest_allowed_time the earliest execution time of the change. </p></td>
                </tr>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A UUID4 string that uniquely identifies the Spec. </p></td>
                </tr>
              
                <tr>
                  <td>depends_on_specs</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>IDs of the specs that this spec depends on.
Must be a subset of the specs in the same step. </p></td>
                </tr>
              
                <tr>
                  <td>create_database_config</td>
                  <td><a href="#bytebase.store.PlanConfig.CreateDatabaseConfig">PlanConfig.CreateDatabaseConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>change_database_config</td>
                  <td><a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig">PlanConfig.ChangeDatabaseConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>export_data_config</td>
                  <td><a href="#bytebase.store.PlanConfig.ExportDataConfig">PlanConfig.ExportDataConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.Step">PlanConfig.Step</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Use the title if set.
Use a generated title if empty. </p></td>
                </tr>
              
                <tr>
                  <td>specs</td>
                  <td><a href="#bytebase.store.PlanConfig.Spec">PlanConfig.Spec</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.VCSSource">PlanConfig.VCSSource</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>vcs_type</td>
                  <td><a href="#bytebase.store.VCSType">VCSType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>vcs_connector</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Optional.
If present, we will update the pull request for rollout status.
Format: projects/{project-ID}/vcsConnectors/{vcs-connector} </p></td>
                </tr>
              
                <tr>
                  <td>pull_request_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.PlanConfig.ChangeDatabaseConfig.Type">PlanConfig.ChangeDatabaseConfig.Type</h3>
        <p>Type is the database change type.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BASELINE</td>
                <td>1</td>
                <td><p>Used for establishing schema baseline, this is used when
1. Onboard the database into Bytebase since Bytebase needs to know the current database schema.
2. Had schema drift and need to re-establish the baseline.</p></td>
              </tr>
            
              <tr>
                <td>MIGRATE</td>
                <td>2</td>
                <td><p>Used for DDL changes including CREATE DATABASE.</p></td>
              </tr>
            
              <tr>
                <td>MIGRATE_SDL</td>
                <td>3</td>
                <td><p>Used for schema changes via state-based schema migration including CREATE DATABASE.</p></td>
              </tr>
            
              <tr>
                <td>MIGRATE_GHOST</td>
                <td>4</td>
                <td><p>Used for DDL changes using gh-ost.</p></td>
              </tr>
            
              <tr>
                <td>BRANCH</td>
                <td>5</td>
                <td><p>Used when restoring from a backup (the restored database branched from the original backup).</p></td>
              </tr>
            
              <tr>
                <td>DATA</td>
                <td>6</td>
                <td><p>Used for DML change.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/plan_check_run.proto">store/plan_check_run.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.PlanCheckRunConfig">PlanCheckRunConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sheet_uid</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>change_database_type</td>
                  <td><a href="#bytebase.store.PlanCheckRunConfig.ChangeDatabaseType">PlanCheckRunConfig.ChangeDatabaseType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>instance_uid</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_group_uid</td>
                  <td><a href="#int64">int64</a></td>
                  <td>optional</td>
                  <td><p><strong>Deprecated.</strong>  </p></td>
                </tr>
              
                <tr>
                  <td>ghost_flags</td>
                  <td><a href="#bytebase.store.PlanCheckRunConfig.GhostFlagsEntry">PlanCheckRunConfig.GhostFlagsEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>pre_update_backup_detail</td>
                  <td><a href="#bytebase.store.PreUpdateBackupDetail">PreUpdateBackupDetail</a></td>
                  <td>optional</td>
                  <td><p>If set, a backup of the modified data will be created automatically before any changes are applied. </p></td>
                </tr>
              
            </tbody>
          </table>

          
            
            
            <h4>Fields with deprecated option</h4>
            <table>
              <thead>
                <tr>
                  <td>Name</td>
                  <td>Option</td>
                </tr>
              </thead>
              <tbody>
              
                <tr>
                  <td>database_group_uid</td>
                  <td><p>true</p></td>
                </tr>
              
              </tbody>
            </table>
            
          

        
      
        <h3 id="bytebase.store.PlanCheckRunConfig.GhostFlagsEntry">PlanCheckRunConfig.GhostFlagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanCheckRunResult">PlanCheckRunResult</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>results</td>
                  <td><a href="#bytebase.store.PlanCheckRunResult.Result">PlanCheckRunResult.Result</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanCheckRunResult.Result">PlanCheckRunResult.Result</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.store.PlanCheckRunResult.Result.Status">PlanCheckRunResult.Result.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>content</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>code</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sql_summary_report</td>
                  <td><a href="#bytebase.store.PlanCheckRunResult.Result.SqlSummaryReport">PlanCheckRunResult.Result.SqlSummaryReport</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sql_review_report</td>
                  <td><a href="#bytebase.store.PlanCheckRunResult.Result.SqlReviewReport">PlanCheckRunResult.Result.SqlReviewReport</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanCheckRunResult.Result.SqlReviewReport">PlanCheckRunResult.Result.SqlReviewReport</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>line</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>detail</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>code</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Code from sql review. </p></td>
                </tr>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p>1-based Position of the SQL statement.
To supersede `line` and `column` above. </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanCheckRunResult.Result.SqlSummaryReport">PlanCheckRunResult.Result.SqlSummaryReport</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>code</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>statement_types</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>statement_types are the types of statements that are found in the sql. </p></td>
                </tr>
              
                <tr>
                  <td>affected_rows</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>changed_resources</td>
                  <td><a href="#bytebase.store.ChangedResources">ChangedResources</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PreUpdateBackupDetail">PreUpdateBackupDetail</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database for keeping the backup data.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.PlanCheckRunConfig.ChangeDatabaseType">PlanCheckRunConfig.ChangeDatabaseType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>CHANGE_DATABASE_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DDL</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DML</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SDL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DDL_GHOST</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SQL_EDITOR</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.PlanCheckRunResult.Result.Status">PlanCheckRunResult.Result.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SUCCESS</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/policy.proto">store/policy.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.Binding">Binding</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The role that is assigned to the members.
Format: roles/{role} </p></td>
                </tr>
              
                <tr>
                  <td>members</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>Specifies the principals requesting access for a Bytebase resource.
For users, the member should be: users/{userUID}
For groups, the member should be: groups/{email} </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p>The condition that is associated with this binding.
If the condition evaluates to true, then this binding applies to the current request.
If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSourceQueryPolicy">DataSourceQueryPolicy</h3>
        <p>DataSourceQueryPolicy is the policy configuration for data source query.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>admin_data_source_restriction</td>
                  <td><a href="#bytebase.store.DataSourceQueryPolicy.Restriction">DataSourceQueryPolicy.Restriction</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DisableCopyDataPolicy">DisableCopyDataPolicy</h3>
        <p>DisableCopyDataPolicy is the policy configuration for disabling copying data.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>active</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.EnvironmentTierPolicy">EnvironmentTierPolicy</h3>
        <p>EnvironmentTierPolicy is the tier of an environment.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>environment_tier</td>
                  <td><a href="#bytebase.store.EnvironmentTierPolicy.EnvironmentTier">EnvironmentTierPolicy.EnvironmentTier</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IamPolicy">IamPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>bindings</td>
                  <td><a href="#bytebase.store.Binding">Binding</a></td>
                  <td>repeated</td>
                  <td><p>Collection of binding.
A binding binds one or more members or groups to a single role. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskData">MaskData</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>masking_level</td>
                  <td><a href="#bytebase.store.MaskingLevel">MaskingLevel</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>full_masking_algorithm_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>partial_masking_algorithm_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingExceptionPolicy">MaskingExceptionPolicy</h3>
        <p>MaskingExceptionPolicy is the allowlist of users who can access sensitive data.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>masking_exceptions</td>
                  <td><a href="#bytebase.store.MaskingExceptionPolicy.MaskingException">MaskingExceptionPolicy.MaskingException</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingExceptionPolicy.MaskingException">MaskingExceptionPolicy.MaskingException</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>action</td>
                  <td><a href="#bytebase.store.MaskingExceptionPolicy.MaskingException.Action">MaskingExceptionPolicy.MaskingException.Action</a></td>
                  <td></td>
                  <td><p>action is the action that the user can access sensitive data. </p></td>
                </tr>
              
                <tr>
                  <td>masking_level</td>
                  <td><a href="#bytebase.store.MaskingLevel">MaskingLevel</a></td>
                  <td></td>
                  <td><p>Level is the masking level that the user can access sensitive data. </p></td>
                </tr>
              
                <tr>
                  <td>member</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Member is the principal who bind to this exception policy instance.

Format: users/{userUID} or groups/{group email} </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p>The condition that is associated with this exception policy instance. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingPolicy">MaskingPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>mask_data</td>
                  <td><a href="#bytebase.store.MaskData">MaskData</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingRulePolicy">MaskingRulePolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>rules</td>
                  <td><a href="#bytebase.store.MaskingRulePolicy.MaskingRule">MaskingRulePolicy.MaskingRule</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingRulePolicy.MaskingRule">MaskingRulePolicy.MaskingRule</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A unique identifier for a node in UUID format. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>masking_level</td>
                  <td><a href="#bytebase.store.MaskingLevel">MaskingLevel</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.RestrictIssueCreationForSQLReviewPolicy">RestrictIssueCreationForSQLReviewPolicy</h3>
        <p>RestrictIssueCreationForSQLReviewPolicy is the policy configuration for restricting issue creation for SQL review.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>disallow</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.RolloutPolicy">RolloutPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>automatic</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>workspace_roles</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>project_roles</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>issue_roles</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>roles/LAST_APPROVER
roles/CREATOR </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SQLReviewRule">SQLReviewRule</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>level</td>
                  <td><a href="#bytebase.store.SQLReviewRuleLevel">SQLReviewRuleLevel</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>payload</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.store.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SlowQueryPolicy">SlowQueryPolicy</h3>
        <p>SlowQueryPolicy is the policy configuration for slow query.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>active</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TagPolicy">TagPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>tags</td>
                  <td><a href="#bytebase.store.TagPolicy.TagsEntry">TagPolicy.TagsEntry</a></td>
                  <td>repeated</td>
                  <td><p>tags is the key - value map for resources.
for example, the environment resource can have the sql review config tag, like &#34;bb.tag.review_config&#34;: &#34;reviewConfigs/{review config resource id}&#34; </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TagPolicy.TagsEntry">TagPolicy.TagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.DataSourceQueryPolicy.Restriction">DataSourceQueryPolicy.Restriction</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>RESTRICTION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FALLBACK</td>
                <td>1</td>
                <td><p>Allow to query admin data sources when there is no read-only data source.</p></td>
              </tr>
            
              <tr>
                <td>DISALLOW</td>
                <td>2</td>
                <td><p>Disallow to query admin data sources.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.EnvironmentTierPolicy.EnvironmentTier">EnvironmentTierPolicy.EnvironmentTier</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ENVIRONMENT_TIER_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PROTECTED</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UNPROTECTED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.MaskingExceptionPolicy.MaskingException.Action">MaskingExceptionPolicy.MaskingException.Action</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ACTION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>QUERY</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>EXPORT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.SQLReviewRuleLevel">SQLReviewRuleLevel</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DISABLED</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/project.proto">store/project.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.Label">Label</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>color</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>group</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Project">Project</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>issue_labels</td>
                  <td><a href="#bytebase.store.Label">Label</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>force_issue_labels</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Force issue labels to be used when creating an issue. </p></td>
                </tr>
              
                <tr>
                  <td>allow_modify_statement</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Allow modifying statement after issue is created. </p></td>
                </tr>
              
                <tr>
                  <td>auto_resolve_issue</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Enable auto resolve issue. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/project_webhook.proto">store/project_webhook.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.ProjectWebhookPayload">ProjectWebhookPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>direct_message</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>if direct_message is set, the notification is sent directly
to the persons and url will be ignored.
IM integration setting should be set for this function to work. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/query_history.proto">store/query_history.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.QueryHistoryPayload">QueryHistoryPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>duration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/review_config.proto">store/review_config.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.ReviewConfigPayload">ReviewConfigPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sql_review_rules</td>
                  <td><a href="#bytebase.store.SQLReviewRule">SQLReviewRule</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/role.proto">store/role.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.RolePermissions">RolePermissions</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>permissions</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/setting.proto">store/setting.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.AgentPluginSetting">AgentPluginSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The URL for the agent API. </p></td>
                </tr>
              
                <tr>
                  <td>token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The token for the agent. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Announcement">Announcement</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>level</td>
                  <td><a href="#bytebase.store.Announcement.AlertLevel">Announcement.AlertLevel</a></td>
                  <td></td>
                  <td><p>The alert level of announcemnt </p></td>
                </tr>
              
                <tr>
                  <td>text</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The text of announcemnt </p></td>
                </tr>
              
                <tr>
                  <td>link</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The optional link, user can follow the link to check extra details </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting">AppIMSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>slack</td>
                  <td><a href="#bytebase.store.AppIMSetting.Slack">AppIMSetting.Slack</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>feishu</td>
                  <td><a href="#bytebase.store.AppIMSetting.Feishu">AppIMSetting.Feishu</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>wecom</td>
                  <td><a href="#bytebase.store.AppIMSetting.Wecom">AppIMSetting.Wecom</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting.Feishu">AppIMSetting.Feishu</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>app_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>app_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting.Slack">AppIMSetting.Slack</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting.Wecom">AppIMSetting.Wecom</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>corp_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>agent_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataClassificationSetting">DataClassificationSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>configs</td>
                  <td><a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig">DataClassificationSetting.DataClassificationConfig</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataClassificationSetting.DataClassificationConfig">DataClassificationSetting.DataClassificationConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the uuid for classification. Each project can chose one
classification config. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>levels</td>
                  <td><a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.Level">DataClassificationSetting.DataClassificationConfig.Level</a></td>
                  <td>repeated</td>
                  <td><p>levels is user defined level list for classification.
The order for the level decides its priority. </p></td>
                </tr>
              
                <tr>
                  <td>classification</td>
                  <td><a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.ClassificationEntry">DataClassificationSetting.DataClassificationConfig.ClassificationEntry</a></td>
                  <td>repeated</td>
                  <td><p>classification is the id - DataClassification map.
The id should in [0-9]&#43;-[0-9]&#43;-[0-9]&#43; format. </p></td>
                </tr>
              
                <tr>
                  <td>classification_from_config</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If true, we will only store the classification in the config.
Otherwise we will get the classification from table/column comment,
and write back to the schema metadata. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataClassificationSetting.DataClassificationConfig.ClassificationEntry">DataClassificationSetting.DataClassificationConfig.ClassificationEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.DataClassification">DataClassificationSetting.DataClassificationConfig.DataClassification</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataClassificationSetting.DataClassificationConfig.DataClassification">DataClassificationSetting.DataClassificationConfig.DataClassification</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the classification id in [0-9]&#43;-[0-9]&#43;-[0-9]&#43; format. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>level_id</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataClassificationSetting.DataClassificationConfig.Level">DataClassificationSetting.DataClassificationConfig.Level</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ExternalApprovalPayload">ExternalApprovalPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>external_approval_node_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ExternalApprovalSetting">ExternalApprovalSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>nodes</td>
                  <td><a href="#bytebase.store.ExternalApprovalSetting.Node">ExternalApprovalSetting.Node</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ExternalApprovalSetting.Node">ExternalApprovalSetting.Node</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A unique identifier for a node in UUID format.
We will also include the id in the message sending to the external relay
service to identify the node. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title of the node. </p></td>
                </tr>
              
                <tr>
                  <td>endpoint</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The external endpoint for the relay service, e.g. &#34;http://hello:1234&#34;. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingAlgorithmSetting">MaskingAlgorithmSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>algorithms</td>
                  <td><a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm">MaskingAlgorithmSetting.Algorithm</a></td>
                  <td>repeated</td>
                  <td><p>algorithms is the list of masking algorithms. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingAlgorithmSetting.Algorithm">MaskingAlgorithmSetting.Algorithm</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the uuid for masking algorithm. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>title is the title for masking algorithm. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>description is the description for masking algorithm. </p></td>
                </tr>
              
                <tr>
                  <td>category</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Category is the category for masking algorithm. Currently, it accepts 2 categories only: MASK and HASH.
The range of accepted Payload is decided by the category.
MASK: FullMask, RangeMask
HASH: MD5Mask </p></td>
                </tr>
              
                <tr>
                  <td>full_mask</td>
                  <td><a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.FullMask">MaskingAlgorithmSetting.Algorithm.FullMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>range_mask</td>
                  <td><a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.RangeMask">MaskingAlgorithmSetting.Algorithm.RangeMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>md5_mask</td>
                  <td><a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.MD5Mask">MaskingAlgorithmSetting.Algorithm.MD5Mask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>inner_outer_mask</td>
                  <td><a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.InnerOuterMask">MaskingAlgorithmSetting.Algorithm.InnerOuterMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingAlgorithmSetting.Algorithm.FullMask">MaskingAlgorithmSetting.Algorithm.FullMask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>substitution</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>substitution is the string used to replace the original value, the
max length of the string is 16 bytes. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingAlgorithmSetting.Algorithm.InnerOuterMask">MaskingAlgorithmSetting.Algorithm.InnerOuterMask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>prefix_len</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>suffix_len</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>substitution</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType">MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingAlgorithmSetting.Algorithm.MD5Mask">MaskingAlgorithmSetting.Algorithm.MD5Mask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>salt</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>salt is the salt value to generate a different hash that with the word alone. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingAlgorithmSetting.Algorithm.RangeMask">MaskingAlgorithmSetting.Algorithm.RangeMask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>slices</td>
                  <td><a href="#bytebase.store.MaskingAlgorithmSetting.Algorithm.RangeMask.Slice">MaskingAlgorithmSetting.Algorithm.RangeMask.Slice</a></td>
                  <td>repeated</td>
                  <td><p>We store it as a repeated field to face the fact that the original value may have multiple parts should be masked.
But frontend can be started with a single rule easily. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingAlgorithmSetting.Algorithm.RangeMask.Slice">MaskingAlgorithmSetting.Algorithm.RangeMask.Slice</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>start is the start index of the original value, start from 0 and should be less than stop. </p></td>
                </tr>
              
                <tr>
                  <td>end</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>stop is the stop index of the original value, should be less than the length of the original value. </p></td>
                </tr>
              
                <tr>
                  <td>substitution</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>OriginalValue[start:end) would be replaced with replace_with. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaximumSQLResultSizeSetting">MaximumSQLResultSizeSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>limit</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The limit is in bytes.
The default value is 100MB, we will use the default value if the setting not exists, or the limit &lt;= 0. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SMTPMailDeliverySetting">SMTPMailDeliverySetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>server</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The SMTP server address. </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The SMTP server port. </p></td>
                </tr>
              
                <tr>
                  <td>encryption</td>
                  <td><a href="#bytebase.store.SMTPMailDeliverySetting.Encryption">SMTPMailDeliverySetting.Encryption</a></td>
                  <td></td>
                  <td><p>The SMTP server encryption. </p></td>
                </tr>
              
                <tr>
                  <td>ca</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The CA, KEY, and CERT for the SMTP server. </p></td>
                </tr>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>cert</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>authentication</td>
                  <td><a href="#bytebase.store.SMTPMailDeliverySetting.Authentication">SMTPMailDeliverySetting.Authentication</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>username</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The sender email address. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchemaTemplateSetting">SchemaTemplateSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>field_templates</td>
                  <td><a href="#bytebase.store.SchemaTemplateSetting.FieldTemplate">SchemaTemplateSetting.FieldTemplate</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column_types</td>
                  <td><a href="#bytebase.store.SchemaTemplateSetting.ColumnType">SchemaTemplateSetting.ColumnType</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table_templates</td>
                  <td><a href="#bytebase.store.SchemaTemplateSetting.TableTemplate">SchemaTemplateSetting.TableTemplate</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchemaTemplateSetting.ColumnType">SchemaTemplateSetting.ColumnType</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.store.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>types</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchemaTemplateSetting.FieldTemplate">SchemaTemplateSetting.FieldTemplate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.store.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>category</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#bytebase.store.ColumnMetadata">ColumnMetadata</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>config</td>
                  <td><a href="#bytebase.store.ColumnConfig">ColumnConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchemaTemplateSetting.TableTemplate">SchemaTemplateSetting.TableTemplate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.store.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>category</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#bytebase.store.TableMetadata">TableMetadata</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>config</td>
                  <td><a href="#bytebase.store.TableConfig">TableConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SemanticTypeSetting">SemanticTypeSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>types</td>
                  <td><a href="#bytebase.store.SemanticTypeSetting.SemanticType">SemanticTypeSetting.SemanticType</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SemanticTypeSetting.SemanticType">SemanticTypeSetting.SemanticType</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the uuid for semantic type. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the title of the semantic type, it should not be empty. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the description of the semantic type, it can be empty. </p></td>
                </tr>
              
                <tr>
                  <td>partial_mask_algorithm_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the partial mask algorithm id for the semantic type, if it is empty,
should use the default partial mask algorithm. </p></td>
                </tr>
              
                <tr>
                  <td>full_mask_algorithm_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the full mask algorithm id for the semantic type, if it is empty, should
use the default full mask algorithm. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.WorkspaceApprovalSetting">WorkspaceApprovalSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>rules</td>
                  <td><a href="#bytebase.store.WorkspaceApprovalSetting.Rule">WorkspaceApprovalSetting.Rule</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.WorkspaceApprovalSetting.Rule">WorkspaceApprovalSetting.Rule</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#google.api.expr.v1alpha1.ParsedExpr">google.api.expr.v1alpha1.ParsedExpr</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>template</td>
                  <td><a href="#bytebase.store.ApprovalTemplate">ApprovalTemplate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.WorkspaceProfileSetting">WorkspaceProfileSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>external_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The URL user visits Bytebase.

The external URL is used for:
1. Constructing the correct callback URL when configuring the VCS provider.
The callback URL points to the frontend.
2. Creating the correct webhook endpoint when configuring the project
GitOps workflow. The webhook endpoint points to the backend. </p></td>
                </tr>
              
                <tr>
                  <td>disallow_signup</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Disallow self-service signup, users can only be invited by the owner. </p></td>
                </tr>
              
                <tr>
                  <td>require_2fa</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Require 2FA for all users. </p></td>
                </tr>
              
                <tr>
                  <td>outbound_ip_list</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>outbound_ip_list is the outbound IP for Bytebase instance in SaaS mode. </p></td>
                </tr>
              
                <tr>
                  <td>gitops_webhook_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The webhook URL for the GitOps workflow. </p></td>
                </tr>
              
                <tr>
                  <td>token_duration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The duration for token. </p></td>
                </tr>
              
                <tr>
                  <td>announcement</td>
                  <td><a href="#bytebase.store.Announcement">Announcement</a></td>
                  <td></td>
                  <td><p>The setting of custom announcement </p></td>
                </tr>
              
                <tr>
                  <td>maximum_role_expiration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The max duration for role expired. </p></td>
                </tr>
              
                <tr>
                  <td>domains</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The workspace domain, e.g. bytebase.com. </p></td>
                </tr>
              
                <tr>
                  <td>enforce_identity_domain</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Only user and group from the domains can be created and login. </p></td>
                </tr>
              
                <tr>
                  <td>database_change_mode</td>
                  <td><a href="#bytebase.store.DatabaseChangeMode">DatabaseChangeMode</a></td>
                  <td></td>
                  <td><p>The workspace database change mode. </p></td>
                </tr>
              
                <tr>
                  <td>disallow_password_signin</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to disallow password signin. (Except workspace admins) </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.Announcement.AlertLevel">Announcement.AlertLevel</h3>
        <p>We support three levels of AlertLevel: INFO, WARNING, and ERROR.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ALERT_LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT_LEVEL_INFO</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT_LEVEL_WARNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT_LEVEL_CRITICAL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.DatabaseChangeMode">DatabaseChangeMode</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>DATABASE_CHANGE_MODE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PIPELINE</td>
                <td>1</td>
                <td><p>A more advanced database change process, including custom approval workflows and other advanced features.
Default to this mode.</p></td>
              </tr>
            
              <tr>
                <td>EDITOR</td>
                <td>2</td>
                <td><p>A simple database change process in SQL editor. Users can execute SQL directly.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType">MaskingAlgorithmSetting.Algorithm.InnerOuterMask.MaskType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>MASK_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INNER</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OUTER</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.SMTPMailDeliverySetting.Authentication">SMTPMailDeliverySetting.Authentication</h3>
        <p>We support four types of SMTP authentication: NONE, PLAIN, LOGIN, and</p><p>CRAM-MD5.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>AUTHENTICATION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AUTHENTICATION_NONE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AUTHENTICATION_PLAIN</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AUTHENTICATION_LOGIN</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AUTHENTICATION_CRAM_MD5</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.SMTPMailDeliverySetting.Encryption">SMTPMailDeliverySetting.Encryption</h3>
        <p>We support three types of SMTP encryption: NONE, STARTTLS, and SSL/TLS.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ENCRYPTION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENCRYPTION_NONE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENCRYPTION_STARTTLS</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENCRYPTION_SSL_TLS</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/sheet.proto">store/sheet.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.SheetCommand">SheetCommand</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>end</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SheetPayload">SheetPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database_config</td>
                  <td><a href="#bytebase.store.DatabaseConfig">DatabaseConfig</a></td>
                  <td></td>
                  <td><p>The snapshot of the database config when creating the sheet, be used to compare with the baseline_database_config and apply the diff to the database. </p></td>
                </tr>
              
                <tr>
                  <td>baseline_database_config</td>
                  <td><a href="#bytebase.store.DatabaseConfig">DatabaseConfig</a></td>
                  <td></td>
                  <td><p>The snapshot of the baseline database config when creating the sheet. </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.store.Engine">Engine</a></td>
                  <td></td>
                  <td><p>The SQL dialect. </p></td>
                </tr>
              
                <tr>
                  <td>commands</td>
                  <td><a href="#bytebase.store.SheetCommand">SheetCommand</a></td>
                  <td>repeated</td>
                  <td><p>The start and end position of each command in the sheet statement. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/slow_query.proto">store/slow_query.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.SlowQueryDetails">SlowQueryDetails</h3>
        <p>SlowQueryDetails is the details of a slow query.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>start_time is the start time of the slow query. </p></td>
                </tr>
              
                <tr>
                  <td>query_time</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>query_time is the query time of the slow query. </p></td>
                </tr>
              
                <tr>
                  <td>lock_time</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>lock_time is the lock time of the slow query. </p></td>
                </tr>
              
                <tr>
                  <td>rows_sent</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>rows_sent is the number of rows sent by the slow query. </p></td>
                </tr>
              
                <tr>
                  <td>rows_examined</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>rows_examined is the number of rows examined by the slow query. </p></td>
                </tr>
              
                <tr>
                  <td>sql_text</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>sql_text is the SQL text of the slow query. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SlowQueryStatistics">SlowQueryStatistics</h3>
        <p>SlowQueryStatistics is the slow query statistics.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>items</td>
                  <td><a href="#bytebase.store.SlowQueryStatisticsItem">SlowQueryStatisticsItem</a></td>
                  <td>repeated</td>
                  <td><p>Items is the list of slow query statistics. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SlowQueryStatisticsItem">SlowQueryStatisticsItem</h3>
        <p>SlowQueryStatisticsItem is the item of slow query statistics.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sql_fingerprint</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>sql_fingerprint is the fingerprint of the slow query. </p></td>
                </tr>
              
                <tr>
                  <td>count</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>count is the number of slow queries with the same fingerprint. </p></td>
                </tr>
              
                <tr>
                  <td>latest_log_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>latest_log_time is the time of the latest slow query with the same fingerprint. </p></td>
                </tr>
              
                <tr>
                  <td>total_query_time</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The total query time of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_query_time</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The maximum query time of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>total_rows_sent</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The total rows sent of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_rows_sent</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum rows sent of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>total_rows_examined</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The total rows examined of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_rows_examined</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum rows examined of the slow query log. </p></td>
                </tr>
              
                <tr>
                  <td>samples</td>
                  <td><a href="#bytebase.store.SlowQueryDetails">SlowQueryDetails</a></td>
                  <td>repeated</td>
                  <td><p>samples are the details of the sample slow queries with the same fingerprint. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/task.proto">store/task.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.TaskDatabaseCreatePayload">TaskDatabaseCreatePayload</h3>
        <p>TaskDatabaseCreatePayload is the task payload for creating databases.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>skipped</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>common fields </p></td>
                </tr>
              
                <tr>
                  <td>skipped_reason</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>spec_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>project_id</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sheet_id</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>environment_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskDatabaseDataExportPayload">TaskDatabaseDataExportPayload</h3>
        <p>TaskDatabaseDataExportPayload is the task payload for database data export.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>spec_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>common fields </p></td>
                </tr>
              
                <tr>
                  <td>sheet_id</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>format</td>
                  <td><a href="#bytebase.store.ExportFormat">ExportFormat</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskDatabaseUpdatePayload">TaskDatabaseUpdatePayload</h3>
        <p>TaskDatabaseDataUpdatePayload is the task payload for database data update (DML).</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>skipped</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>common fields </p></td>
                </tr>
              
                <tr>
                  <td>skipped_reason</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>spec_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sheet_id</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>pre_update_backup_detail</td>
                  <td><a href="#bytebase.store.PreUpdateBackupDetail">PreUpdateBackupDetail</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>flags</td>
                  <td><a href="#bytebase.store.TaskDatabaseUpdatePayload.FlagsEntry">TaskDatabaseUpdatePayload.FlagsEntry</a></td>
                  <td>repeated</td>
                  <td><p>flags is used for ghost sync </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskDatabaseUpdatePayload.FlagsEntry">TaskDatabaseUpdatePayload.FlagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/task_run.proto">store/task_run.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.PriorBackupDetail">PriorBackupDetail</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>items</td>
                  <td><a href="#bytebase.store.PriorBackupDetail.Item">PriorBackupDetail.Item</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PriorBackupDetail.Item">PriorBackupDetail.Item</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>source_table</td>
                  <td><a href="#bytebase.store.PriorBackupDetail.Item.Table">PriorBackupDetail.Item.Table</a></td>
                  <td></td>
                  <td><p>The original table information. </p></td>
                </tr>
              
                <tr>
                  <td>target_table</td>
                  <td><a href="#bytebase.store.PriorBackupDetail.Item.Table">PriorBackupDetail.Item.Table</a></td>
                  <td></td>
                  <td><p>The target backup table information. </p></td>
                </tr>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PriorBackupDetail.Item.Table">PriorBackupDetail.Item.Table</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database information.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchedulerInfo">SchedulerInfo</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>report_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>waiting_cause</td>
                  <td><a href="#bytebase.store.SchedulerInfo.WaitingCause">SchedulerInfo.WaitingCause</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchedulerInfo.WaitingCause">SchedulerInfo.WaitingCause</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>connection_limit</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_uid</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunResult">TaskRunResult</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>detail</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>change_history</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: instances/{instance}/databases/{database}/changeHistories/{changeHistory} </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.store.TaskRunResult.Position">TaskRunResult.Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.store.TaskRunResult.Position">TaskRunResult.Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>export_archive_uid</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The uid of the export archive. </p></td>
                </tr>
              
                <tr>
                  <td>prior_backup_detail</td>
                  <td><a href="#bytebase.store.PriorBackupDetail">PriorBackupDetail</a></td>
                  <td></td>
                  <td><p>The prior backup detail that will be used to rollback the task run. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunResult.Position">TaskRunResult.Position</h3>
        <p>The following fields are used for error reporting.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>line</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/task_run_log.proto">store/task_run_log.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.TaskRunLog">TaskRunLog</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.TaskRunLog.Type">TaskRunLog.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>deploy_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_dump_start</td>
                  <td><a href="#bytebase.store.TaskRunLog.SchemaDumpStart">TaskRunLog.SchemaDumpStart</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_dump_end</td>
                  <td><a href="#bytebase.store.TaskRunLog.SchemaDumpEnd">TaskRunLog.SchemaDumpEnd</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>command_execute</td>
                  <td><a href="#bytebase.store.TaskRunLog.CommandExecute">TaskRunLog.CommandExecute</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>command_response</td>
                  <td><a href="#bytebase.store.TaskRunLog.CommandResponse">TaskRunLog.CommandResponse</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_sync_start</td>
                  <td><a href="#bytebase.store.TaskRunLog.DatabaseSyncStart">TaskRunLog.DatabaseSyncStart</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_sync_end</td>
                  <td><a href="#bytebase.store.TaskRunLog.DatabaseSyncEnd">TaskRunLog.DatabaseSyncEnd</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_run_status_update</td>
                  <td><a href="#bytebase.store.TaskRunLog.TaskRunStatusUpdate">TaskRunLog.TaskRunStatusUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>transaction_control</td>
                  <td><a href="#bytebase.store.TaskRunLog.TransactionControl">TaskRunLog.TransactionControl</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>prior_backup_start</td>
                  <td><a href="#bytebase.store.TaskRunLog.PriorBackupStart">TaskRunLog.PriorBackupStart</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>prior_backup_end</td>
                  <td><a href="#bytebase.store.TaskRunLog.PriorBackupEnd">TaskRunLog.PriorBackupEnd</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.CommandExecute">TaskRunLog.CommandExecute</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>command_indexes</td>
                  <td><a href="#int32">int32</a></td>
                  <td>repeated</td>
                  <td><p>The indexes of the executed commands. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.CommandResponse">TaskRunLog.CommandResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>command_indexes</td>
                  <td><a href="#int32">int32</a></td>
                  <td>repeated</td>
                  <td><p>The indexes of the executed commands. </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>affected_rows</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>all_affected_rows</td>
                  <td><a href="#int32">int32</a></td>
                  <td>repeated</td>
                  <td><p>`all_affected_rows` is the affected rows of each command.
`all_affected_rows` may be unavailable if the database driver doesn&#39;t support it. Caller should fallback to `affected_rows` in that case. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.DatabaseSyncEnd">TaskRunLog.DatabaseSyncEnd</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.DatabaseSyncStart">TaskRunLog.DatabaseSyncStart</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.store.TaskRunLog.PriorBackupEnd">TaskRunLog.PriorBackupEnd</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>prior_backup_detail</td>
                  <td><a href="#bytebase.store.PriorBackupDetail">PriorBackupDetail</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.PriorBackupStart">TaskRunLog.PriorBackupStart</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.store.TaskRunLog.SchemaDumpEnd">TaskRunLog.SchemaDumpEnd</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.SchemaDumpStart">TaskRunLog.SchemaDumpStart</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.store.TaskRunLog.TaskRunStatusUpdate">TaskRunLog.TaskRunStatusUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.store.TaskRunLog.TaskRunStatusUpdate.Status">TaskRunLog.TaskRunStatusUpdate.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.TransactionControl">TaskRunLog.TransactionControl</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.TaskRunLog.TransactionControl.Type">TaskRunLog.TransactionControl.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.TaskRunLog.TaskRunStatusUpdate.Status">TaskRunLog.TaskRunStatusUpdate.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RUNNING_WAITING</td>
                <td>1</td>
                <td><p>the task run is ready to be executed by the scheduler</p></td>
              </tr>
            
              <tr>
                <td>RUNNING_RUNNING</td>
                <td>2</td>
                <td><p>the task run is being executed by the scheduler</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.TaskRunLog.TransactionControl.Type">TaskRunLog.TransactionControl.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BEGIN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COMMIT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ROLLBACK</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.TaskRunLog.Type">TaskRunLog.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SCHEMA_DUMP_START</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SCHEMA_DUMP_END</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COMMAND_EXECUTE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COMMAND_RESPONSE</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SYNC_START</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SYNC_END</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TASK_RUN_STATUS_UPDATE</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TRANSACTION_CONTROL</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PRIOR_BACKUP_START</td>
                <td>9</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PRIOR_BACKUP_END</td>
                <td>10</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/user.proto">store/user.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.MFAConfig">MFAConfig</h3>
        <p>MFAConfig is the MFA configuration for a user.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>otp_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The otp_secret is the secret key used to validate the OTP code. </p></td>
                </tr>
              
                <tr>
                  <td>temp_otp_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The temp_otp_secret is the temporary secret key used to validate the OTP code and will replace the otp_secret in two phase commits. </p></td>
                </tr>
              
                <tr>
                  <td>recovery_codes</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The recovery_codes are the codes that can be used to recover the account. </p></td>
                </tr>
              
                <tr>
                  <td>temp_recovery_codes</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The temp_recovery_codes are the temporary codes that will replace the recovery_codes in two phase commits. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/vcs.proto">store/vcs.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.VCSConnector">VCSConnector</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The title or display name of the VCS connector. </p></td>
                </tr>
              
                <tr>
                  <td>full_path</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Full path from the corresponding VCS provider.
For GitLab, this is the project full path. e.g. group1/project-1 </p></td>
                </tr>
              
                <tr>
                  <td>web_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Web url from the corresponding VCS provider.
For GitLab, this is the project web url. e.g. https://gitlab.example.com/group1/project-1 </p></td>
                </tr>
              
                <tr>
                  <td>branch</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Branch to listen to. </p></td>
                </tr>
              
                <tr>
                  <td>base_directory</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Base working directory we are interested. </p></td>
                </tr>
              
                <tr>
                  <td>external_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Repository id from the corresponding VCS provider.
For GitLab, this is the project id. e.g. 123 </p></td>
                </tr>
              
                <tr>
                  <td>external_webhook_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Push webhook id from the corresponding VCS provider.
For GitLab, this is the project webhook id. e.g. 123 </p></td>
                </tr>
              
                <tr>
                  <td>webhook_secret_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>For GitLab, webhook request contains this in the &#39;X-Gitlab-Token&#34; header and we compare it with the one stored in db to validate it sends to the expected endpoint. </p></td>
                </tr>
              
                <tr>
                  <td>database_group</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Apply changes to the database group. Optional, if not set, will apply changes to all databases in the project.
Format: projects/{project}/databaseGroups/{databaseGroup} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    

    <h2 id="scalar-value-types">Scalar Value Types</h2>
    <table class="scalar-value-types-table">
      <thead>
        <tr><td>.proto Type</td><td>Notes</td><td>C++</td><td>Java</td><td>Python</td><td>Go</td><td>C#</td><td>PHP</td><td>Ruby</td></tr>
      </thead>
      <tbody>
        
          <tr id="double">
            <td>double</td>
            <td></td>
            <td>double</td>
            <td>double</td>
            <td>float</td>
            <td>float64</td>
            <td>double</td>
            <td>float</td>
            <td>Float</td>
          </tr>
        
          <tr id="float">
            <td>float</td>
            <td></td>
            <td>float</td>
            <td>float</td>
            <td>float</td>
            <td>float32</td>
            <td>float</td>
            <td>float</td>
            <td>Float</td>
          </tr>
        
          <tr id="int32">
            <td>int32</td>
            <td>Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="int64">
            <td>int64</td>
            <td>Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="uint32">
            <td>uint32</td>
            <td>Uses variable-length encoding.</td>
            <td>uint32</td>
            <td>int</td>
            <td>int/long</td>
            <td>uint32</td>
            <td>uint</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="uint64">
            <td>uint64</td>
            <td>Uses variable-length encoding.</td>
            <td>uint64</td>
            <td>long</td>
            <td>int/long</td>
            <td>uint64</td>
            <td>ulong</td>
            <td>integer/string</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sint32">
            <td>sint32</td>
            <td>Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sint64">
            <td>sint64</td>
            <td>Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="fixed32">
            <td>fixed32</td>
            <td>Always four bytes. More efficient than uint32 if values are often greater than 2^28.</td>
            <td>uint32</td>
            <td>int</td>
            <td>int</td>
            <td>uint32</td>
            <td>uint</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="fixed64">
            <td>fixed64</td>
            <td>Always eight bytes. More efficient than uint64 if values are often greater than 2^56.</td>
            <td>uint64</td>
            <td>long</td>
            <td>int/long</td>
            <td>uint64</td>
            <td>ulong</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="sfixed32">
            <td>sfixed32</td>
            <td>Always four bytes.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sfixed64">
            <td>sfixed64</td>
            <td>Always eight bytes.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="bool">
            <td>bool</td>
            <td></td>
            <td>bool</td>
            <td>boolean</td>
            <td>boolean</td>
            <td>bool</td>
            <td>bool</td>
            <td>boolean</td>
            <td>TrueClass/FalseClass</td>
          </tr>
        
          <tr id="string">
            <td>string</td>
            <td>A string must always contain UTF-8 encoded or 7-bit ASCII text.</td>
            <td>string</td>
            <td>String</td>
            <td>str/unicode</td>
            <td>string</td>
            <td>string</td>
            <td>string</td>
            <td>String (UTF-8)</td>
          </tr>
        
          <tr id="bytes">
            <td>bytes</td>
            <td>May contain any arbitrary sequence of bytes.</td>
            <td>string</td>
            <td>ByteString</td>
            <td>str</td>
            <td>[]byte</td>
            <td>ByteString</td>
            <td>string</td>
            <td>String (ASCII-8BIT)</td>
          </tr>
        
      </tbody>
    </table>
  </body>
</html>

